Sip register
Version 20 (Adrian Georgescu, 03/14/2009 09:49 am)
1 | 16 | Adrian Georgescu | == sip_register == |
---|---|---|---|
2 | 1 | Adrian Georgescu | |
3 | 17 | Adrian Georgescu | [[TOC(SipTesting*, sip_*, depth=2)]] |
4 | 17 | Adrian Georgescu | |
5 | 18 | Adrian Georgescu | To use this script you must to have a valid [wiki:SipSettingsAPI configuration]. |
6 | 2 | Adrian Georgescu | |
7 | 20 | Adrian Georgescu | [Image(http://www.tech-invite.com/img/cf3665/cf3665-2x.gif, align=right] |
8 | 19 | Adrian Georgescu | |
9 | 16 | Adrian Georgescu | === Description === |
10 | 6 | Adrian Georgescu | |
11 | 12 | Adrian Georgescu | SIP protocol offers a discovery capability. If a user wants to initiate a session |
12 | 12 | Adrian Georgescu | with another user, he must discover the current host(s) at which the |
13 | 8 | Adrian Georgescu | destination user is reachable. To do this, SIP network elements consult an |
14 | 8 | Adrian Georgescu | abstract service known as a location service, which provides address |
15 | 8 | Adrian Georgescu | bindings for a particular domain. Registration entails sending a REGISTER |
16 | 8 | Adrian Georgescu | request to a special type of UAS known as a registrar. A registrar acts as |
17 | 8 | Adrian Georgescu | the front end to the location service for a domain, reading and writing |
18 | 8 | Adrian Georgescu | mappings based on the contents of REGISTER requests. This location service |
19 | 8 | Adrian Georgescu | is then typically consulted by a proxy server that is responsible for |
20 | 8 | Adrian Georgescu | routing requests for that domain. |
21 | 8 | Adrian Georgescu | |
22 | 8 | Adrian Georgescu | This script implements REGISTER method, which registers the contact (ip:port |
23 | 8 | Adrian Georgescu | address) for a given address of record (SIP address). |
24 | 8 | Adrian Georgescu | |
25 | 6 | Adrian Georgescu | Source code: [source:scripts/sip_register.py scripts/sip_register.py] |
26 | 3 | Adrian Georgescu | |
27 | 1 | Adrian Georgescu | {{{ |
28 | 1 | Adrian Georgescu | adigeo@ag-imac3:~$sip_register.py -h |
29 | 1 | Adrian Georgescu | Usage: sip_register.py [options] |
30 | 1 | Adrian Georgescu | |
31 | 1 | Adrian Georgescu | This script will register a SIP account to a SIP registrar and refresh it |
32 | 1 | Adrian Georgescu | while the program is running. When Ctrl+D is pressed it will unregister. |
33 | 1 | Adrian Georgescu | |
34 | 1 | Adrian Georgescu | Options: |
35 | 1 | Adrian Georgescu | -h, --help show this help message and exit |
36 | 1 | Adrian Georgescu | -a ACCOUNT_NAME, --account-name=ACCOUNT_NAME |
37 | 1 | Adrian Georgescu | The account name from which to read account settings. |
38 | 1 | Adrian Georgescu | Corresponds to section Account_NAME in the |
39 | 1 | Adrian Georgescu | configuration file. |
40 | 1 | Adrian Georgescu | --sip-address=SIP_ADDRESS |
41 | 1 | Adrian Georgescu | SIP login account |
42 | 1 | Adrian Georgescu | -p PASSWORD, --password=PASSWORD |
43 | 1 | Adrian Georgescu | Password to use to authenticate the local account. |
44 | 1 | Adrian Georgescu | This overrides the setting from the config file. |
45 | 1 | Adrian Georgescu | -n DISPLAY_NAME, --display-name=DISPLAY_NAME |
46 | 1 | Adrian Georgescu | Display name to use for the local account. This |
47 | 1 | Adrian Georgescu | overrides the setting from the config file. |
48 | 1 | Adrian Georgescu | -e EXPIRES, --expires=EXPIRES |
49 | 1 | Adrian Georgescu | "Expires" value to set in REGISTER. Default is 300 |
50 | 1 | Adrian Georgescu | seconds. |
51 | 1 | Adrian Georgescu | -o IP[:PORT], --outbound-proxy=IP[:PORT] |
52 | 1 | Adrian Georgescu | Outbound SIP proxy to use. By default a lookup of the |
53 | 1 | Adrian Georgescu | domain is performed based on SRV and A records. This |
54 | 1 | Adrian Georgescu | overrides the setting from the config file. |
55 | 1 | Adrian Georgescu | -s, --trace-sip Dump the raw contents of incoming and outgoing SIP |
56 | 1 | Adrian Georgescu | messages (disabled by default). |
57 | 1 | Adrian Georgescu | -l, --log-pjsip Print PJSIP logging output (disabled by default). |
58 | 7 | Adrian Georgescu | -r MAX_REGISTERS, --max-registers=MAX_REGISTERS |
59 | 7 | Adrian Georgescu | Max number of REGISTERs sent (default 1). |
60 | 1 | Adrian Georgescu | }}} |
61 | 1 | Adrian Georgescu | |
62 | 16 | Adrian Georgescu | === Example === |
63 | 1 | Adrian Georgescu | |
64 | 1 | Adrian Georgescu | {{{ |
65 | 1 | Adrian Georgescu | adigeo@ag-imac3:~$sip_register |
66 | 1 | Adrian Georgescu | Using default account: 31208005169@ag-projects.com |
67 | 1 | Adrian Georgescu | Resolved DNS SRV record "_sip._udp.ag-projects.com" --> proxy.sipthor.net:5060 |
68 | 1 | Adrian Georgescu | Resolved DNS A record "proxy.sipthor.net" --> 85.17.186.7, 81.23.228.150, 81.23.228.129 |
69 | 1 | Adrian Georgescu | Registering ""Adrian G." <sip:31208005169@ag-projects.com>" at 81.23.228.150:5060 |
70 | 1 | Adrian Georgescu | REGISTER was successful |
71 | 1 | Adrian Georgescu | Contact: <sip:163d949d32@192.168.1.6:49521> (expires in 300 seconds) |
72 | 1 | Adrian Georgescu | Other registered contacts: |
73 | 1 | Adrian Georgescu | <sip:31208005169@192.168.1.122:5062;line=634g6j67> (expires in 559 seconds) |
74 | 1 | Adrian Georgescu | <sip:31208005169@192.168.1.123:5060> (expires in 205 seconds) |
75 | 1 | Adrian Georgescu | <sip:4429c5c061@192.168.1.6:49515> (expires in 152 seconds) |
76 | 1 | Adrian Georgescu | <sip:5a9c042eb4@192.168.1.6:49511> (expires in 135 seconds) |
77 | 1 | Adrian Georgescu | <sip:31208005169@192.168.1.1;uniq=5B2860C44383A3D6705629A7E1FB8> (expires in 1014 seconds) |
78 | 1 | Adrian Georgescu | <sip:31208005169@80.101.96.20:61359> (expires in 981 seconds) |
79 | 1 | Adrian Georgescu | Press Ctrl+D to stop the program |
80 | 1 | Adrian Georgescu | }}} |