[OpenSIPS-Users] R: R: Wesip and Opensips

Ginés Gómez gines at voztele.com
Fri Mar 20 15:38:57 CET 2009


Ciao Mauro,

	can you look at the WeSIP debug.log file and check if messages are  
being sent with spiral. There is a line like this

08:12:01 20Mar2009  DEBUG ExpressMessageChannel [SipProcessor[3]]-  
sending with spiral=true

which informs

Regards

Ginés


> Hi Ginés,
>
> in the server.xml wesip configuration file I add the following line:
>
> <property key="com.voztele.javax.sip.SPIRAL_HDR" value="true"/>
>
> The opensips log says me that:
>
> The wesip INVITE pass trought the local_route function and it don’t  
> re-enter in the Opensips again…. You can see it in the below log it  
> is in bold
>
> The sip message is sent to the production server IP… You can see it  
> in the below log it is in red bold
>
> The production server IP (that isn’t my test opensips server)  
> rensponde with 403 Forbidden… You can see it in the below log it is  
> in blue bold
>
> So, in my scenarious I never see the SIP message with the SPIRAL_HDR  
> in the route{} function… Perhaps I need to use a real domain name… I  
> think…
>
> Please, any other suggestions???
>
> Regards,
>             MD
>
> Below the opensips log file:
>
> Mar 20 14:47:04 [20679] DBG:seas:process_input: read 408 bytes from  
> AS action socket (total = 408)
> Mar 20 14:47:04 [20679] DBG:seas:process_action: Processing action  
> 408 bytes long
> Mar 20 14:47:04 [20679] DBG:seas:process_action: Processing an UAC  
> REQUEST action from AS (length=408): wesipapp
> Mar 20 14:47:04 [20679] DBG:seas:ac_uac_req: Action UAC Message:  
> uac_id:532438880 processor_id=1
> Mar 20 14:47:04 [20679] DBG:seas:parse_ac_msg: Action Message: 
> [INVITE sip:003955223344 at domain.com SIP/2.0
> Call-ID: 69B5604EA6CF791ECB903674779B72F6 at localhost
> CSeq: 1 INVITE
> From: <sip: 
> 003955223344 at domain.com>;tag=1A73A93AB8753C253342CF1DB2C03DFF
> To: <sip:003955223344 at domain.com>
> Max-Forwards: 70
> Contact: <sip:192.168.193.75:5060;transport=udp;AppId=.click2call>
> Via: SIP/2.0/UDP 192.168.193.75:5060;branch=z9hG4bK532438880
> Content-Length: 0
>
> ]
> Mar 20 14:47:04 [20679] DBG:core:parse_msg: SIP Request:
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  method:  <INVITE>
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  uri:     <sip:003955223344 at domain.com 
> >
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  version: <SIP/2.0>
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=2
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: cseq <CSeq>: <1>  
> <INVITE>
> Mar 20 14:47:04 [20679] DBG:core:parse_to: end of header reached,  
> state=10
> Mar 20 14:47:04 [20679] DBG:core:parse_to: display={}, ruri={sip:003955223344 at domain.com 
> }
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: <To> [32]; uri=[sip:003955223344 at domain.com 
> ]
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: to body [<sip:003955223344 at domain.com 
> >
> ]
> Mar 20 14:47:04 [20679] DBG:core:parse_via_param: found param type  
> 232, <branch> = <z9hG4bK532438880>; state=16
> Mar 20 14:47:04 [20679] DBG:core:parse_via: end of header reached,  
> state=5
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: via found, flags=2
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: this is the first via
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=ffffffffffffffff
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: content_length=0
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: found end of header
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=ffffffffffffffff
> Mar 20 14:47:04 [20679] DBG:core:parse_to_param:  
> tag=1A73A93AB8753C253342CF1DB2C03DFF
> Mar 20 14:47:04 [20679] DBG:core:parse_to: end of header reached,  
> state=29
> Mar 20 14:47:04 [20679] DBG:core:parse_to: display={}, ruri={sip:003955223344 at domain.com 
> }
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=78
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Skipping  
> header (Call-ID)
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Skipping  
> header (CSeq)
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Skipping  
> header (From)
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Skipping  
> header (To)
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Stripping  
> vias [Via: SIP/2.0/UDP 192.168.193.75:5060;branch=z9hG4bK532438880
> ]
> Mar 20 14:47:04 [20679] DBG:seas:extract_allowed_headers: Skipping  
> header (Content-Length)
> Mar 20 14:47:04 [20679] DBG:tm:t_uac: next_hop=<sip:003955223344 at domain.com 
> >
> Mar 20 14:47:04 [20679] DBG:core:mk_proxy: doing DNS lookup...
> Mar 20 14:47:04 [20679] DBG:core:sip_resolvehost: no port, no proto - 
> > do NAPTR lookup!
> Mar 20 14:47:04 [20679] DBG:core:get_record: lookup(domain.com, 35)  
> failed
> Mar 20 14:47:04 [20679] DBG:core:sip_resolvehost: no valid NAPTR  
> record found for domain.com, trying direct SRV lookup...
> Mar 20 14:47:04 [20679] DBG:core:do_srv_lookup:  
> SRV(_sip._udp.domain.com) = voip5.domain.com:443
> Mar 20 14:47:04 [20679] DBG:core:a2dns_node: storing  
> voip1.domain.com:5060
> Mar 20 14:47:04 [20679] DBG:core:get_out_socket: socket determined:  
> 0x8197fe0
> Mar 20 14:47:04 [20679] DBG:tm:dlg2hash: 28079
> Mar 20 14:47:04 [20679] DBG:tm:print_request_uri: sip:003955223344 at domain.com
> Mar 20 14:47:04 [20679] DBG:tm:t_uac: building sip_msg from buffer
> Mar 20 14:47:04 [20679] DBG:core:parse_msg: SIP Request:
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  method:  <INVITE>
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  uri:     <sip:003955223344 at domain.com 
> >
> Mar 20 14:47:04 [20679] DBG:core:parse_msg:  version: <SIP/2.0>
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=2
> Mar 20 14:47:04 [20679] DBG:core:parse_via_param: found param type  
> 232, <branch> = <z9hG4bKfad6.b890cd35.0>; state=16
> Mar 20 14:47:04 [20679] DBG:core:parse_via: end of header reached,  
> state=5
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: via found, flags=2
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: this is the first via
> INVITE INTERNALLY GENERATED!!!
> Mar 20 14:47:04 [20679] DBG:core:parse_headers: flags=10
> Mar 20 14:47:04 [20679] DBG:core:parse_to: end of header reached,  
> state=9
> Mar 20 14:47:04 [20679] DBG:core:parse_to: display={}, ruri={sip:003955223344 at domain.com 
> }
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: <To> [30]; uri=[sip:003955223344 at domain.com 
> ]
> Mar 20 14:47:04 [20679] DBG:core:get_hdr_field: to body [sip:003955223344 at domain.com
> ]
> Mar 20 14:47:04 [20679] DBG:core:parse_to_param:  
> tag=1A73A93AB8753C253342CF1DB2C03DFF
> Mar 20 14:47:04 [20679] DBG:core:parse_to: end of header reached,  
> state=29
> Mar 20 14:47:04 [20679] DBG:core:parse_to: display={}, ruri={sip:003955223344 at domain.com 
> }
> Mar 20 14:47:04 [20679] DBG:core:db_new_result: allocate 28 bytes  
> for result set at 0x81cf1e0
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_get_columns: 1 columns  
> returned from the query
> Mar 20 14:47:04 [20679] DBG:core:db_allocate_columns: allocate 4  
> bytes for result names at 0x81cefd8
> Mar 20 14:47:04 [20679] DBG:core:db_allocate_columns: allocate 4  
> bytes for result types at 0x81cee70
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_get_columns: allocate  
> 8 bytes for RES_NAMES[0] at 0x81cefa0
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_get_columns:  
> RES_NAMES(0x81cefa0)[0]=[domain]
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_get_columns: use  
> DB_STRING result type
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_convert_rows: allocate  
> 8 bytes for rows at 0x81cf208
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_convert_row: allocate  
> 20 bytes for row values at 0x81cf218
> Mar 20 14:47:04 [20679] DBG:db_mysql:db_mysql_str2val: converting  
> STRING [domain.com]
> Mar 20 14:47:04 [20679] DBG:domain:is_domain_local: Realm  
> 'domain.com' is local
> Mar 20 14:47:04 [20679] DBG:core:db_free_columns: freeing 1 columns
> Mar 20 14:47:04 [20679] DBG:core:db_free_columns: freeing  
> RES_NAMES[0] at 0x81cefa0
> Mar 20 14:47:04 [20679] DBG:core:db_free_columns: freeing result  
> names at 0x81cefd8
> Mar 20 14:47:04 [20679] DBG:core:db_free_columns: freeing result  
> types at 0x81cee70
> Mar 20 14:47:04 [20679] DBG:core:db_free_rows: freeing 1 rows
> Mar 20 14:47:04 [20679] DBG:core:db_free_row: freeing row values at  
> 0x81cf218
> Mar 20 14:47:04 [20679] DBG:core:db_free_rows: freeing rows at  
> 0x81cf208
> Mar 20 14:47:04 [20679] DBG:core:db_free_result: freeing result set  
> at 0x81cf1e0
> <sip:003955223344 at domain.com> BEFORE INVITE INTERNALLY GENERATED!!!
> <sip:003955223344 at domain.com> AFTER INVITE INTERNALLY GENERATED!!!
> Mar 20 14:47:04 [20679] DBG:core:mk_proxy: doing DNS lookup...
> Mar 20 14:47:04 [20679] DBG:core:sip_resolvehost: no port, no proto - 
> > do NAPTR lookup!
> Mar 20 14:47:04 [20679] DBG:core:get_record: lookup(domain.com, 35)  
> failed
> Mar 20 14:47:04 [20679] DBG:core:sip_resolvehost: no valid NAPTR  
> record found for domain.com, trying direct SRV lookup...
> Mar 20 14:47:04 [20679] DBG:core:do_srv_lookup:  
> SRV(_sip._udp.domain.com) = voip5.domain.com:443
> Mar 20 14:47:04 [20679] DBG:core:a2dns_node: storing  
> voip1.domain.com:5060
> Mar 20 14:47:04 [20679] DBG:core:check_via_address: params  
> 192.168.193.75, 192.168.193.75, 0
> Mar 20 14:47:04 [20679] DBG:core:forward_request: sending:
> INVITE sip:003955223344 at domain.com SIP/2.0
> Via: SIP/2.0/UDP 192.168.193.75;branch=z9hG4bKfad6.b890cd35.0
> Via: SIP/2.0/UDP 192.168.193.75;branch=z9hG4bKfad6.b890cd35.0
> To: sip:003955223344 at domain.com
> From: sip:003955223344 at domain.com;tag=1A73A93AB8753C253342CF1DB2C03DFF
> CSeq: 1 INVITE
> Call-ID: 69B5604EA6CF791ECB903674779B72F6 at localhost
> Content-Length: 0
> Max-Forwards: 70
> Contact: <sip:192.168.193.75:5060;transport=udp;AppId=.click2call>
>
> .
> Mar 20 14:47:04 [20679] DBG:core:forward_request: orig. len=391,  
> new_len=454, proto=1
> Mar 20 14:47:04 [20679] DBG:tm:t_uac: re-building the buffer  
> (sip_msg changed) - lumps are0x81cf1e0 (nil)
> Mar 20 14:47:04 [20679] DBG:tm:set_timer: relative timeout is 500000
> Mar 20 14:47:04 [20679] DBG:tm:insert_timer_unsafe: [4]: 0xb616e844  
> (7100000)
> Mar 20 14:47:04 [20679] DBG:tm:set_timer: relative timeout is 20
> Mar 20 14:47:04 [20679] DBG:tm:insert_timer_unsafe: [0]: 0xb616e860  
> (26)
> Mar 20 14:47:04 [20679] DBG:seas:process_input: (Action  
> dispatched,buffer.len=0)
> Mar 20 14:47:04 [20661] DBG:core:parse_msg: SIP Reply  (status):
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  version: <SIP/2.0>
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  status:  <100>
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  reason:  <Trying>
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: flags=2
> Mar 20 14:47:04 [20661] DBG:core:parse_via_param: found param type  
> 232, <branch> = <z9hG4bKfad6.b890cd35.0>; state=6
> Mar 20 14:47:04 [20661] DBG:core:parse_via_param: found param type  
> 234, <received> = <194.184.159.6>; state=6
> Mar 20 14:47:04 [20661] DBG:core:parse_via_param: found param type  
> 235, <rport> = <1205>; state=16
> Mar 20 14:47:04 [20661] DBG:core:parse_via: end of header reached,  
> state=5
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: via found, flags=2
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: this is the first via
> Mar 20 14:47:04 [20661] DBG:core:receive_msg: After parse_msg...
> Mar 20 14:47:04 [20661] ERROR:tm:t_check_status: cannot check status  
> for a reply which has no transaction-state established
> Mar 20 14:47:04 [20661] DBG:core:forward_reply: found module tm,  
> passing reply to it
> Mar 20 14:47:04 [20661] DBG:tm:t_check: start=0xffffffff
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: flags=22
> Mar 20 14:47:04 [20661] DBG:core:parse_via_param: found param type  
> 232, <branch> = <z9hG4bKfad6.b890cd35.0>; state=16
> Mar 20 14:47:04 [20661] DBG:core:parse_via: end of header reached,  
> state=5
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: via found, flags=22
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: parse_headers: this  
> is the second via
> Mar 20 14:47:04 [20661] DBG:core:parse_to: end of header reached,  
> state=10
> Mar 20 14:47:04 [20661] DBG:core:parse_to: display={}, ruri={sip:003955223344 at domain.com 
> }
> Mar 20 14:47:04 [20661] DBG:core:get_hdr_field: <To> [32]; uri=[sip:003955223344 at domain.com 
> ]
> Mar 20 14:47:04 [20661] DBG:core:get_hdr_field: to body [<sip:003955223344 at domain.com 
> >
> ]
> Mar 20 14:47:04 [20661] DBG:core:get_hdr_field: cseq <CSeq>: <1>  
> <INVITE>
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: flags=8
> Mar 20 14:47:04 [20661] DBG:tm:t_reply_matching: hash 28079 label  
> 1406929291 branch 0
> Mar 20 14:47:04 [20661] DBG:tm:t_reply_matching: REF_UNSAFE: after  
> is 1
> Mar 20 14:47:04 [20661] DBG:tm:t_reply_matching: reply matched  
> (T=0xb616e6f8)!
> Mar 20 14:47:04 [20661] DBG:tm:t_check: end=0xb616e6f8
> Mar 20 14:47:04 [20661] DBG:tm:reply_received: org. status uas=0,  
> uac[0]=0 local=2 is_invite=1)
> Mar 20 14:47:04 [20661] DBG:tm:t_should_relay_response: T_code=0,  
> new_code=100
> Mar 20 14:47:04 [20661] DBG:tm:local_reply: branch=0, save=0,  
> winner=-1
> Mar 20 14:47:04 [20661] DBG:tm:set_timer: relative timeout is 30
> Mar 20 14:47:04 [20661] DBG:tm:insert_timer_unsafe: [1]: 0xb616e860  
> (36)
> Mar 20 14:47:04 [20661] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
> Mar 20 14:47:04 [20661] DBG:core:destroy_avp_list: destroying list  
> (nil)
> Mar 20 14:47:04 [20661] DBG:core:receive_msg: cleaning up
> Mar 20 14:47:04 [20661] DBG:core:parse_msg: SIP Reply  (status):
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  version: <SIP/2.0>
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  status:  <403>
> Mar 20 14:47:04 [20661] DBG:core:parse_msg:  reason:  <Forbidden>
> Mar 20 14:47:04 [20661] DBG:core:parse_headers: flags=2
> Da: Ginés Gómez [mailto:gines at voztele.com]
> Inviato: venerdì 20 marzo 2009 14:47
> A: Mauro Davi’
> Cc: users at lists.opensips.org
> Oggetto: Re: [OpenSIPS-Users] R: Wesip and Opensips
>
> Hi Mauro,
>
>             afaik local_route is meant to be used only with OpenSIPS  
> self generated requests (like CANCEL to forking branches) not with  
> WeSIP. That is the reason why we implemented the SPIRAL_HDR feature.  
> When you activate SPIRAL_HDR the messages generated by WeSIP will  
> "enter" again in OpenSIPS thus you can catch them in the route  
> function (not local_route). In order to identify them look for the X- 
> WeSIP-SPIRAL header and then modify the message and relay it   with  
> t_realy. Code would look something like this
>
> route{
>
>     if(is_present_hf("X-WeSIP-SPIRAL")){
>        /* modify your message here as required */
>        t_relay();
>     }else{
>        as_relay_t("app_server_one");
>     }
> }
>
> Regards
>
> Ginés
>
>
> Hola Gines,
>
> I’m in a test environment and the domain that I use for every user  
> is resolved with the production SIP server IP…(I haven’t a DNS  
> domain name associated to my test openser), obviously the production  
> SIP server responde to every request with a 403 Forbidden message.
>
> I don’t know if this is the problem but with the wesip SPITAL_HDR  
> set  to true, I see only the messages that start in the local_route  
> function.
>
> To avoid this problem, I’m trying to manipulate the message in the  
> local_route function without good result L…
>
> Is there another way to do this??
>
> Regards
>      MD
>
> Da: Ginés Gómez [mailto:gines at voztele.com]
> Inviato: venerdì 20 marzo 2009 12:46
> A: Mauro Davi’
> Cc: users at lists.opensips.org
> Oggetto: Re: [OpenSIPS-Users] Wesip and Opensips
>
> Ciao Mauro,
>
>             first, you can manipulate messages from WeSIP itselft   
> before you send them out. Once they are sent out you can manipulate  
> them in OpenSIPs script if you configure WeSIP to work in spiral  
> mode. When working in spiral mode outgoing messages from WeSIP loop  
> through OpenSIPs script in a new transaction before leaving. You can  
> recognize them, and work accordingly if you look for the particular  
> a header that is added by WeSIP. The header is  X-WeSIP-SPIRAL
>
> NON-SPIRAL-MODE (Default)
>
> Origin       [OpenSIPS     WeSIP]      Destination
>    | ----t1----->| ----------->|------t2----->
>                                    Internal
>                                Delivery
>
>
> SPIRAL-MODE
>
> Origin   [OpenSIPS       WeSIP]                OpenSIPS   Destination
>      | ----t1-----> | ----------->|-----------t2------->| ----t3---> |
>                                        Internal       X-WeSIP-Spiral
>                                    Delivery
>
> More on this kind of configuration at http://www.wesip.com/mediawiki/index.php/Configuration#com.voztele.javax.sip.SPIRAL_HDR
>
> Hope that helps
>
> Regards
>
> Ginés
>
>
>
>
>
> Hi All,
>
> I’m setting up the Click2Dial wesip application, and I’m trying to  
> use it.
>
> When I start the call in the opensips script I need to manipulate it.
>
> So in the local_route branch I try to see if the To party is an  
> alias but I can’t use alias_db_lookup function in the local_route  
> branch…
>
> Is this correct? How I can manipulate the messages generated by  
> wesip ?
>
> Thanks in advance
>             MD
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20090320/67bd8d3b/attachment-0003.htm 


More information about the Users mailing list