[Freeswitch-users] 2 SIP Lines, Difficulty Originating Call

Chris Danielson chris at maxpowersoft.com
Wed Sep 12 22:38:17 PDT 2007


After running some more tests I noticed something very interesting... 
see the 192.168.0.1 line:

2007-09-12 20:49:00 [DEBUG] sofia.c:1028 sofia_handle_sip_i_state() 
Channel sofia/sip.vonics.net/18881234567 entering state [calling]
sres_resolver_receive(0x556cd0, 16) called
RR received sip.vonics.net. CNAME IN 890 rdlen=9
RR received vonics.net. SOA IN 7199 rdlen=46
sres_cache_get(0x549370, SRV, "_sip._udp.sip.vonics.net.") called
rr found in cache: _sip._udp.sip.vonics.net. 33
rr found in cache: _sip._udp.sip.vonics.net. 33
rr found in cache: _sip._udp.sip.vonics.net. 33
rr found in cache: _sip._udp.sip.vonics.net. 33
sres_cache_get(0x549370, SRV, "_sip._udp.sip.vonics.net.") returned 4 
entries
nta: for "sip.vonics.net" query "_sip._udp.sip.vonics.net" SRV (cached)
nta: _sip._udp.sip.vonics.net IN SRV 0 0  5060 sipserver1.vonics.net. (udp)
nta: _sip._udp.sip.vonics.net IN SRV 1 0  13412 sipserver1.vonics.net. (udp)
nta: _sip._udp.sip.vonics.net IN SRV 2 0  5060 sipserver2.vonics.net. (udp)
nta: _sip._udp.sip.vonics.net IN SRV 3 0  13412 sipserver2.vonics.net. (udp)
sres_cache_get(0x549370, A, "sipserver1.vonics.net.") called
nta: for "sip.vonics.net" query "sipserver1.vonics.net." A
sres_query(0x556cd0, 0x690fb0, A, "sipserver1.vonics.net.") called
sres_send_dns_query(0x556cd0, 0x691a70) called
sres_send_dns_query(0x556cd0, 0x691a70) id=14532 A 
sipserver1.vonics.net. (to [192.168.0.1]:53)
sres_resolver_receive(0x556cd0, 16) called
sres_decode_msg: matching query for id=14531
sres_resolver_receive(0x556cd0, 16) called
RR received sipserver1.vonics.net. CNAME IN 3599 rdlen=9
RR received juliet.vonics.net. A IN 4663 rdlen=4
RR received vonics.net. NS IN 4663 rdlen=6
RR received vonics.net. NS IN 4663 rdlen=6
RR received vonics.net. NS IN 4663 rdlen=6

And following this log I ran a netstat just to see the socket

MaxPowerSoft001:~# netstat -nalp |grep freeswitch
tcp        0      0 10.0.0.2:13412          0.0.0.0:*               
LISTEN     14720/freeswitch
udp        0      0 10.0.0.2:32826          192.168.0.1:53          
ESTABLISHED14720/freeswitch
udp        0      0 10.0.0.2:13412          
0.0.0.0:*                          14720/freeswitch


I am wondering if the 192.168.0.1 address is causing my issues.  Thanks 
again for any light you shine on this issue.

Kind Regards,
Chris Danielson

Chris Danielson wrote:
> I attempted the session.streamFile(...) and was able to successfully 
> hear the wav file.  I also attempted calling the session.answer() for 
> a second time within the cf_bridge_call function.  Still, I am unable 
> to hear the ringing sound even though the phone that I called is 
> actually ringing.  When the phone is answered, the originate appears 
> to fail due to a 60 second timeout, which is reported as a NO_ANSWER.  
> This happens regardless of whether or not the phone I am calling is 
> answered or not.
>
> Here is the current execution flow within my Javascript:
>
> function cf_bridge_call(phone) {
>     var str = "sofia/gateway/line2/"+phone;
>     session.setVariable("ringback", "%(2000, 4000, 440.0, 480.0)");
>     session.preAnswer(); /* attemped a session.answer() here in 
> another test.  The sound file still played, not no ringing was heard.  */
>     session.streamFile("/usr/local/freeswitch/sounds/you_rang.wav");
>     session.execute("bridge", str);
> }
>
> session.answer();
> session.flushDigits();
> /**
>  * Query database and dynamically load a phone number into variable
>  **/
> var phoneNo = db_get_phone();
> cf_bridge_call(phoneNo);
>
> The log output was:
>
> 2007-09-08 01:54:35 [DEBUG] switch_ivr_play_say.c:1007 
> switch_ivr_play_file() done playing file
> 2007-09-08 01:54:35 [NOTICE] switch_channel.c:385 
> switch_channel_set_name() New Chan sofia/sip.vonics.net/18881234567 
> [1f766c60-5de9-11dc-af73-3b3c22977fdb]
> 2007-09-08 01:54:35 [DEBUG] mod_sofia.c:1431 sofia_outgoing_channel() 
> sofia/sip.vonics.net/18881234567 State Change CS_NEW -> CS_INIT
> 2007-09-08 01:54:35 [DEBUG] switch_core_session.c:647 
> switch_core_session_signal_state_change() Kill 
> sofia/sip.vonics.net/18881234567 [BREAK]
> 2007-09-08 01:54:35 [DEBUG] switch_core_state_machine.c:383 
> switch_core_session_run() (sofia/sip.vonics.net/18881234567) State INIT
> 2007-09-08 01:54:35 [DEBUG] mod_sofia.c:92 sofia_on_init() SOFIA INIT
> 2007-09-08 01:54:35 [DEBUG] sofia.c:71 sofia_event_callback() event 
> [nua_i_state] status [0][INVITE sent] session: 
> sofia/sip.vonics.net/18881234567
> 2007-09-08 01:54:35 [DEBUG] sofia.c:1028 sofia_handle_sip_i_state() 
> Channel sofia/sip.vonics.net/18881234567 entering state [calling]
> 2007-09-08 01:54:35 [DEBUG] mod_sofia.c:105 sofia_on_init() 
> sofia/sip.vonics.net/18881234567 State Change CS_INIT -> CS_RING
> 2007-09-08 01:54:35 [DEBUG] switch_core_session.c:647 
> switch_core_session_signal_state_change() Kill 
> sofia/sip.vonics.net/18881234567 [BREAK]
> 2007-09-08 01:54:35 [DEBUG] switch_core_state_machine.c:418 
> switch_core_session_run() (sofia/sip.vonics.net/18881234567) State RING
> 2007-09-08 01:54:35 [DEBUG] mod_sofia.c:120 sofia_on_ring() SOFIA RING
> 2007-09-08 01:54:35 [DEBUG] switch_ivr_originate.c:48 
> originate_on_ring() sofia/sip.vonics.net/18881234567 State Change 
> CS_RING -> CS_HOLD
> 2007-09-08 01:54:35 [DEBUG] switch_core_session.c:647 
> switch_core_session_signal_state_change() Kill 
> sofia/sip.vonics.net/18881234567 [BREAK]
> 2007-09-08 01:54:35 [DEBUG] switch_core_state_machine.c:596 
> switch_core_session_run() (sofia/sip.vonics.net/18881234567) State HOLD
> 2007-09-08 01:54:35 [DEBUG] switch_core_state_machine.c:204 
> switch_core_standard_on_hold() Standard HOLD
> 2007-09-08 01:54:35 [DEBUG] switch_ivr_originate.c:619 
> switch_ivr_originate() Raw Codec Activation Success L16 at 8000hz 1 
> channel 20ms
> 2007-09-08 01:54:35 [DEBUG] switch_ivr_originate.c:667 
> switch_ivr_originate() Play Ringback Tone [%(2000, 4000, 440.0, 480.0)]
> 2007-09-08 01:54:35 [DEBUG] sofia.c:71 sofia_event_callback() event 
> [nua_r_invite] status [401][Unauthorized] session: 
> sofia/sip.vonics.net/18881234567
> 2007-09-08 01:54:35 [DEBUG] sofia_reg.c:691 
> sofia_reg_handle_sip_r_challenge() Authenticating 'FreeSWITCH' with 
> 'Digest:"sip.vonics.net":16191111111:5874'.
> 2007-09-08 01:54:35 [DEBUG] sofia.c:71 sofia_event_callback() event 
> [nua_i_state] status [0][INVITE sent] session: 
> sofia/sip.vonics.net/18881234567
> 2007-09-08 01:54:35 [DEBUG] sofia.c:1028 sofia_handle_sip_i_state() 
> Channel sofia/sip.vonics.net/18881234567 entering state [calling]
> 2007-09-08 01:55:35 [NOTICE] switch_ivr_originate.c:805 
> switch_ivr_originate() Hangup sofia/sip.vonics.net/18881234567 
> [CS_HOLD] [NO_ANSWER]
> 2007-09-08 01:55:35 [DEBUG] switch_channel.c:1076 
> switch_channel_perform_hangup() Kill sofia/sip.vonics.net/18881234567 
> [KILL]
> 2007-09-08 01:55:35 [DEBUG] switch_core_session.c:647 
> switch_core_session_signal_state_change() Kill 
> sofia/sip.vonics.net/18881234567 [BREAK]
> 2007-09-08 01:55:35 [DEBUG] switch_ivr_originate.c:878 
> switch_ivr_originate() Originate Cancelled by originator termination 
> Cause: 19 [NO_ANSWER]
> 2007-09-08 01:55:35 [INFO] mod_dptools.c:1087 audio_bridge_function() 
> Originate Failed.  Cause: NO_ANSWER
>
> Thanks again for all the help.
>
> Kind Regards,
> Chris Danielson
>
> Anthony Minessale wrote:
>> you can find out by playing a file in the script
>> to make sure you have an audio path.
>>
>> session.preAnswer();
>> session.streamFile("/some.wav");
>>
>> If that doesn't work the inbound device may not support early media 
>> so try session.answer(); instead to compare what happens when you 
>> send a 200 ok instead of a 183 progress
>>
>>
>>  
>> Anthony Minessale II
>>
>> FreeSWITCH http://www.freeswitch.org/
>> ClueCon http://www.cluecon.com/
>>
>> AIM: anthm
>> MSN:anthony_minessale at hotmail.com
>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>> IRC: irc.freenode.net #freeswitch
>>
>> FreeSWITCH Developer Conference
>> sip:888 at conference.freeswitch.org
>> iax:guest at conference.freeswitch.org/888
>> googletalk:conf+888 at conference.freeswitch.org
>> pstn:213-799-1400
>>
>>
>> ----- Original Message ----
>> From: Chris Danielson <chris at maxpowersoft.com>
>> To: freeswitch-users at lists.freeswitch.org
>> Sent: Thursday, September 6, 2007 11:50:29 PM
>> Subject: Re: [Freeswitch-users] 2 SIP Lines, Difficulty Originating Call
>>
>> Thanks again for all the help.  My apologies for not replying sooner, 
>> I was out of town for a week and needed some extra time to research 
>> and try some of the things you had mentioned.  Everything that is 
>> brought up in this thread will get documented by me within the wiki.
>>
>> So far I have tried both techniques within my JavaScript code that 
>> Anthony mentioned.  Here is one example:
>>
>> function cf_bridge_call(phone) {
>>     var str = "sofia/gateway/line2/"+phone;
>>     session.setVariable("ringback", "%(2000, 4000, 440.0, 480.0)");
>>     session.preAnswer();
>>     session.execute("bridge", str);
>> }
>> cf_bridge_call("18881234567");
>>
>> When I make this call I still do not hear the ringing and notice that 
>> the console renders:
>> nta: received 180 Ringing for INVITE (87950735)
>> nta: 180 Ringing was discarded
>>
>> When the phone is actually answered, I still cannot hear the person 
>> on the other side speaking too. 
>>
>> Is this possibly due to the fact that I am having a NAT issue?  Or 
>> could this be that my carrier is doing something out of the norm?  
>> And finally, should I implement this strictly as a dialplan within 
>> the default_context.xml file and avoid handling this functionality 
>> within JavaScript?
>>
>> Kind Regards,
>>     Chris Danielson
>>
>> Anthony Minessale wrote:
>>> You should choose one or the other not both.
>>> One is inband ringing generated by FreeSWITCH and the other
>>> is just the sip message telling the phone to indicate ringinig.
>>> Here is a description I wrote on an earlier posting here that 
>>> someone may want to stick in the wiki.
>>>
>>> ---snip
>>>
>>> ring_ready is a dialplan application that sends the protocol 
>>> specific message to indicate ringing.  In the case of SIP a 180 Ringing.
>>>
>>> ringback is a channel variable you can set to artificially generate 
>>> a tone or play an audio file to an originating channel while it 
>>> waits to be connected to another call.
>>>
>>> pre_answer is a dialplan application that will send the protocol 
>>> specific message to indicate early media.  In the case of SIP a 183 
>>> Progress
>>>
>>> So, if you call into freeswitch with sip and the first entry in your 
>>> dialplan is ring_ready followed by a bridge to some other 
>>> destination when it hits ring_ready it will send "180 Ringing" back 
>>> to your phone so it can generate the ringing sound.
>>>
>>> If instead you use the set application to set ringback to a tone 
>>> spec or audio file followed by a call to pre_answer to establish an 
>>> early media connection followed by a call to bridge to another dest, 
>>> then the core will generate this audio locally and send it back to 
>>> your phone. Again, this occurs during early media meaning the call 
>>> has not been answered but the SIP has negotiated a media path in 
>>> advance for this type of pre-answer audio indication.  SIP has no 
>>> promise that early media must be supported so some switches and 
>>> devices opt to not support it meaning you may not be able to hear 
>>> any audio until the call is officially answered which would keep you 
>>> from hearing the artificial ringback at all.
>>>
>>>  
>>>
>>>  
>>> Anthony Minessale II
>>>
>>> FreeSWITCH http://www.freeswitch.org/
>>> ClueCon http://www.cluecon.com/
>>>
>>> AIM: anthm
>>> MSN:anthony_minessale at hotmail.com
>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>> IRC: irc.freenode.net #freeswitch
>>>
>>> FreeSWITCH Developer Conference
>>> sip:888 at conference.freeswitch.org
>>> iax:guest at conference.freeswitch.org/888
>>> googletalk:conf+888 at conference.freeswitch.org
>>> pstn:213-799-1400
>>>
>>>
>>> ----- Original Message ----
>>> From: Tamas Cseke <cstomi.levlist at gmail.com>
>>> To: chris at maxpowersoft.com; freeswitch-users at lists.freeswitch.org
>>> Sent: Monday, August 27, 2007 2:34:22 AM
>>> Subject: Re: [Freeswitch-users] 2 SIP Lines, Difficulty Originating Call
>>>
>>> Chris Danielson írta:
>>> > If any one can help me, I am having two issues.  Basically, while my
>>> > javascript is executing a single inbound SIP call the script
>>> > conditionally gets to a point where the end-user can originate a 
>>> call to
>>> > an external phone number.  Keep in mind that I have two sip lines
>>> > defined as gateways supplied by my carrier vonics.net.  Upon 
>>> calling the
>>> > originate method, the call is actually placed and the destination 
>>> phone
>>> > actually begins to ring.  At this point I still cannot hear the 
>>> ringing
>>> > on the original session that was originated by my inbound 
>>> call.  Also,
>>> > the originate method times out regardless of whether or not the
>>> > destination "phone" number was answered or not.
>>> >
>>> > So my two issues are:
>>> > 1)  Why does the originate method start a call, the destination phone
>>> > called actually rings, but always times out, regardless of whether or
>>> > not the phone was answered?
>>> > 2)  When calling the originate method, I never hear the phone 
>>> ringing on
>>> > my inbound connection.
>>> >  
>>> You should call ring_ready app, if you want to hear the ringing afaik.
>>>
>>>                 /* set ringback tone */
>>>                 session.setVariable("ringback", "%(2000, 4000, 440.0,
>>> 480.0)");
>>>                 session.execute("ring_ready", "");
>>>
>>> I found these pages, maybe you can find more about it on wiki.
>>> http://wiki.freeswitch.org/wiki/Custom_Ring_Back_Tones
>>> http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_ring_ready
>>>
>>> Hope this help!
>>>
>>> Regards,
>>> Tamas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20070912/f892bb39/attachment-0002.html 


More information about the FreeSWITCH-users mailing list