Skip to main content

Twinkle sip client, ported to a python module.

Project description

Github contributors

License: MIT

Description

Twinkle sip client, ported to a python module.

Tested environments

Hardware Rpi zero W
Operating systems Linux
Python versions Python 3.x
Distros Raspbian 10
Languages English

Instalation

sudo apt-get install twinkle
sudo pip3 install pytwinkle

Example

from pytwinkle import Twinkle

def callback(event, *args):
    if event=="registration_succeeded":
        uri, expires = args
        print("registratiom succeeded, uri: %s, expires in %s seconds"%(uri, expires))
        # The module keeps the session, you havent to register
        mTP.message("name@domain", "Hello")
        mTP.call("name@domain")

    if event=="new_msg":
        msg=args[0]
        print("new_msg!: "+str(msg))
    
    if event=="incoming_call":
        call=args[0]
        print("call: "+str(call))

    if event=="cancelled_call":
        line=args[0]
        print("call cancelled, line: %s"%(line))
        
    if event=="answered_call":
        call=args[0]
        print("answered: %s"%(str(call)))
        
    if event=="ended_call":
        line=args[0]
        print("call ended, line: %s"%(line))
  
mTP = Twinkle(callback)  
mTP.set_account("name","domain","password")
mTP.run()
  • Callbacks
Event Description *Returns *
"registration_succeeded" When the registration suceed Line number and seconds to expire (*)
"new_msg" New message receives msg={'from':uri, 'to':uri 'msg':msg}
"incoming_call" Incoming call call={'from':uri, 'to':uri}
"cancelled_call" Cancelled call Line number
"answered_call" Answered call call={'msg':msg, 'code':num, 'to':uri}
"ended_call" Ended call Line number

(*) doesnt matter the seconds to expire, the program keep the session active

  • Functions

  • call Call someone

  • answer Answer an incoming call

  • answerbye Answer an incoming call or end a call

  • reject Reject an incoming call

  • bye End a call

  • hold Put a call on-hold

  • retrieve Retrieve a held call

  • redial Repeat last call

  • register Register your phone at a registrar

  • deregister De-register your phone at a registrar

  • message Send an instant message

  • Not supported at the moment

    • redirect Redirect an incoming call
    • transfer Transfer a standing call
    • conference Join 2 calls in a 3-way conference
    • mute Mute a line
    • dtmf Send DTMF
    • fetch_reg Fetch registrations from registrar
    • options Get capabilities of another SIP endpoint
    • line Toggle between phone lines
    • dnd Do not disturb
    • auto_answer Auto answer
    • user Show users / set active user
    • presence Publish your presence state
    • quit Quit

Dependencies

  • System dependencies
    • python3
    • twinkle
  • Python dependencies
    • multiprocessing

Mentions

@LubosD - https://github.com/LubosD/twinkle

Developer

Roberto Lama Rodríguez - roberlama@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytwinkle-0.1.3.tar.gz (7.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page