I was attempting to make a call from two softphones via a SIP server. Something like twinkle <=> SER <=> twinkle. Simple! right ? OpenSER seem like a popular choice. But I had little trouble starting up with that. Contrary to popular opinion, I found SER documentation, esp this getting started guide to be a good tutorial. If someone can point me to something similar in OpenSER, it would be great!
Based on the guide, I made simple changes to my /etc/ser/ser.cfg
# ———– global configuration parameters ————————
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
debug=7 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
#children=4
fifo=”/tmp/ser_fifo”
# —————— module loading ———————————-
Start the server up
/usr/sbin/ser D E
or
/etc/init.d/ser start
Start twikle up,
Set User Profile->Registrar to localhost IP
Set System Profile->Network->SIP UDP Port to 5061 (since SER is listening on the default 5060)
Invole Registration->Register
Check with Registraton->Show Registrations
Wed 17:52:43
localser: you have the following registrations
<sip:bsnram@10.130.102.209:5061>;expires=2181
Now open twinkle as another user (right now from the same box, will try from different box later)
essentially do the same as before using different port (5062) and different user name (nram2)
Show Registration on the nram2 displays this:
Wed 17:53:32
default: you have the following registrations
<sip:nram2@10.130.102.209:5062>;expires=2089
Verify that SER got these as well.
root@marvin:/var/log# serctl ul show
Dumping all contacts may take long: are you sure you want to proceed? [Y|N] Y
1(10033) **** done consume
===Domain list===
—Domain—
name : ‘aliases’
size : 512
table: 0xb5f1dd58
d_ll {
n : 0
first: (nil)
last : (nil)
}
—/Domain—
—Domain—
name : ‘location’
size : 512
table: 0xb5f1bcf8
d_ll {
n : 2
first: 0xb5f1fd60
last : 0xb5f1fe58
}
…Record(0xb5f1fd60)…
domain: ‘location’
aor : ‘nram2′
~~~Contact(0xb5f1fda0)~~~
domain : ‘location’
aor : ‘nram2′
Contact : ’sip:nram2@10.130.102.209:5062′
Expires : 2032
q :
Call-ID : ‘zgbfjpjwtkjwsbd@10.130.102.209′
CSeq : 932
User-Agent: ‘Twinkle/1.0′
received : ”
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
~~~/Contact~~~~
…/Record…
…Record(0xb5f1fe58)…
domain: ‘location’
aor : ‘bsnram’
~~~Contact(0xb5f1fe98)~~~
domain : ‘location’
aor : ‘bsnram’
Contact : ’sip:bsnram@10.130.102.209:5061′
Expires : 2075
q :
Call-ID : ‘ftolomycgbosabi@10.130.102.209′
CSeq : 739
User-Agent: ‘Twinkle/1.0′
received : ”
State : CS_NEW
Flags : 0
next : (nil)
prev : (nil)
~~~/Contact~~~~
…/Record…
—/Domain—
===/Domain list===
Now just call the 2nd SIP user ( sip:nram2@10.130.102.209:5062) from 1st instance of twinkle. Works great
I think once registered, the calls don’t go thru the proxy. I see no logs, Even if SER is shutdown the calls still go thru, until twikle instances themselves are shutdown.
I also tested services like Do not Disturb and Call redirection. All worked great (I redirected the calls to SER server itself and I did see it take the message from the logs)
Cool!