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 details)

Uploaded Source

File details

Details for the file pytwinkle-0.1.3.tar.gz.

File metadata

  • Download URL: pytwinkle-0.1.3.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3

File hashes

Hashes for pytwinkle-0.1.3.tar.gz
Algorithm Hash digest
SHA256 78e41e4f3a837bc94a1efa4586594fd8feca1e4b6745fcbc231ef8eb9a9aa4cd
MD5 5880bc3afa12a3532f7c9de9107dde18
BLAKE2b-256 ec7157344320bf98aa2f3f6d3fe75eb13bcb27ec513d1160082182728909178c

See more details on using hashes here.

Supported by

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