[OpenSIPS-Users] xmpp configuration

Indiver nehru.indu at gmail.com
Tue Dec 29 03:58:13 CET 2009


Hi Anca,
I forgot to mention that when i'm trying to send message from sipclient to
xmpp client i'm getting 503 message too big and from xmpp client to sip
client i'm getting 404 remote server not found. Can you suggest any changes
of above cfg regarding xmpp section. Thanks in advance

Indiver wrote:
> 
> Hi Anca,
> I digged in to that problem and make some changes in opensips.cfg file.
> I'm pasting my cfg  as i avoided other routing scripts for time being:
> 
> ####### Global Parameters #########
> 
> debug=6
> fork=no
> #log_facility=LOG_LOCAL0
> log_stderror=yes
> children=4
> 
> /* uncomment the following lines to enable debugging */
> #debug=6
> #fork=no
> #log_stderror=yes
> 
> /* uncomment the next line to disable TCP (default on) */
> #disable_tcp=yes
> 
> /* uncomment the next line to enable the auto temporary blacklisting of
> not available destinations (default disabled) */
> #disable_dns_blacklist=no
> 
> /* uncomment the next line to enable IPv6 lookup after IPv4 dns lookup
> failures (default disabled) */
> #dns_try_ipv6=yes
> 
> /* uncomment the next line to disable the auto discovery of local aliases
> based on revers DNS on IPs (default on) */
> auto_aliases=yes
> 
> /* uncomment and configure the following line if you want opensips to bind
> on a specific interface/port/proto (default bind on all available) */
> 
> listen=udp:auaccountonline.com
> port=5060
> 
> # ------------------ module loading ----------------------------------
> #set module path
> mpath="/usr/local/lib64/opensips/modules"
> 
> #Uncomment this if you want to use SQL database
> #loadmodule "mysql.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "signaling.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
> loadmodule "xmpp.so"
> loadmodule "auth.so"
> loadmodule "auth_db.so"
> loadmodule "db_mysql.so"
> loadmodule "domain.so"
> 
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> #loadmodule "auth.so"
> #loadmodule "auth_db.so"
> # ----------------- setting module-specific parameters ---------------
> # -- mi_fifo params --
> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
> # -- usrloc params --
> modparam("usrloc", "db_mode", 0)
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> #modparam("usrloc", "db_mode", 2)
> # -- auth params --
> # Uncomment if you are using auth module
> #
> #modparam("auth_db", "calculate_ha1", yes)
>                                
>    
>     # If you set "calculate_ha1" parameter to yes (which true in this
> config),
>     # uncomment also the following parameter)
>     #
>     #modparam("auth_db", "password_column", "password")
>     # -- rr params --
>     # add value to ;lr param to make some broken UAs happy
>     modparam("rr", "enable_full_lr", 1)
> 
> 
> # ----- auth_db params -----
> /* uncomment the following lines if you want to enable the DB based 
> authentication */
> modparam("auth_db", "calculate_ha1", yes)
> modparam("auth_db", "password_column", "password")
> modparam("auth_db",
> "db_url","mysql://opensips:opensipsrw@localhost/opensips")
> 
> #usrloc
> modparam("usrloc", "db_mode", 2)
> modparam("usrloc", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips") 
> # ----- domain params -----
> /* uncomment the following lines to enable multi-domain detection
>    support */
> modparam("domain",
> "db_url","mysql://opensips:opensipsrw@localhost/opensips")
> modparam("domain", "db_mode", 1)   # Use caching
> 
> #xmpp param
> modparam("xmpp", "domain_separator", "*")
> modparam("xmpp", "gateway_domain", "ac.auaccountonline.com")
> modparam("xmpp", "xmpp_domain", "debian64")
> modparam("xmpp", "xmpp_host", "debian64")
> modparam("xmpp", "xmpp_port", 5347)
> modparam("xmpp", "xmpp_password", "admin")
> 
> #modparam("xmpp", "backend", "server")
> modparam("xmpp", "backend", "component")
> 
>     # -------------------------       request routing logic
> -------------------
>     # main routing logic
> route
> {
>              
>              if (!mf_process_maxfwd_header("10"))
>              {
>                         sl_send_reply("483","Too Many Hops");
>                         exit;
>              };
>              if (msg:len >= 2048 ) 
>              {
>                         sl_send_reply("513", "Message too big");
>                         exit;
>              };
>              
>              if (!method=="REGISTER")
>              record_route();
>              
>              if (loose_route()) 
>              {
>                         # mark routing logic in request
>                         append_hf("P-hint: rr-enforced\r\n");
>                         route(1);
>              };
>              if (!uri==myself)
>              {
>                         # mark routing logic in request
>                         append_hf("P-hint: outbound\r\n");
>                         # if you have some interdomain connections via TLS
>                         #if(uri=~"@tls_domain1.net") 
>                         #{
>                         #       t_relay("tls:domain1.net");
>                         #       exit;
>                                         
> 
>                         #} 
>                         #else if(uri=~"@tls_domain2.net") 
>                         #{
>                         #t_relay("tls:domain2.net");
>                         #exit;
>                          #}
>                 route(1);
>              };
>         
>             if (uri==myself)
>             {
>                 if (method=="REGISTER") 
>                 {
>                          # Uncomment this if you want to use digest
> authentication
>                          #if (!www_authorize("openser.org", "subscriber"))
> {
>                          #        www_challenge("openser.org", "0");
>                          #        exit;
>                          #};
>                          save("location");
>                          exit;
>                 };
>                 lookup("aliases");
>                 if (!uri==myself) {
>                          append_hf("P-hint: outbound alias\r\n");
>                          route(1);
>                 };
>                 if (method == "MESSAGE") 
>          {
> 		log("*** xmpp-handled MESSAGE message.\n");
> 		if (xmpp_send_message())
>                 {
> 			sl_send_reply("200", "Accepted");
> 		} 
>                 else
>                 {
> 			sl_send_reply("404", "Not found");
> 		}
> 		return;
> 	}
> 		
> 	log("*** xmpp: unhandled message type\n");
> 	#t_reply("503", "Service unavailable");
>          sl_send_reply("503", "Service Unavailable" ); 
> 	return;
> 
>                 # native SIP destinations are handled using our USRLOC DB
>                 if (!lookup("location")) {
>                          sl_send_reply("404", "Not Found");
>                          exit;
>                 };
>                 append_hf("P-hint: usrloc applied\r\n");
>            };
>         route(1);
> }
> route[1]
> {
>         # send it out now; use stateful forwarding as it works
>         # reliably even for UDP2TCP
>         if (!t_relay()) 
>         {
>                 sl_reply_error();
>         };
>         exit;
> }
> My host name is : debian64
> When i trying to  send message from web client of ejabber to sip client
> i'm getting error 404 error: The error log is as follows:
> 
> Dec 29 00:16:30 [12500] DBG:xmpp:xmpp_component_child_process: server read
> [<message from='admin at debian64/jabberworld'
> to='1000*auaccountonline.com at debian64' type='chat'><body>hai hai hai hai
> hai hai hai </body></message>]
> Dec 29 00:16:30 [12500] DBG:xmpp:stream_node_callback: stream callback: 1:
> message
> Dec 29 00:16:30 [12500] DBG:xmpp:stream_node_callback: XMPP IM received
> Dec 29 00:16:30 [12500] DBG:tm:t_uac:
> next_hop=<sip:1000 at auaccountonline.com>
> Dec 29 00:16:30 [12500] DBG:core:mk_proxy: doing DNS lookup...
> Dec 29 00:16:30 [12500] DBG:core:sip_resolvehost: no port, no proto -> do
> NAPTR lookup!
> Dec 29 00:16:30 [12500] DBG:core:get_record: lookup(auaccountonline.com,
> 35) failed
> Dec 29 00:16:30 [12500] DBG:core:sip_resolvehost: no valid NAPTR record
> found for auaccountonline.com, trying direct SRV lookup...
> Dec 29 00:16:30 [12500] DBG:core:get_record:
> lookup(_sip._udp.auaccountonline.com, 33) failed
> Dec 29 00:16:30 [12500] DBG:core:sip_resolvehost: no valid SRV record
> found for _sip._udp.auaccountonline.com, trying A record lookup...
> Dec 29 00:16:30 [12500] DBG:tm:dlg2hash: 40275
> Dec 29 00:16:30 [12500] DBG:tm:print_request_uri:
> sip:1000 at auaccountonline.com
> Dec 29 00:16:30 [12500] DBG:tm:set_timer: relative timeout is 500000
> Dec 29 00:16:30 [12500] DBG:tm:insert_timer_unsafe: [4]: 0x7ff4494404a0
> (416800000)
> Dec 29 00:16:30 [12500] DBG:tm:set_timer: relative timeout is 30
> Dec 29 00:16:30 [12500] DBG:tm:insert_timer_unsafe: [0]: 0x7ff4494404d0
> (446)
> Dec 29 00:16:30 [12497] DBG:core:parse_msg: SIP Request:
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  method:  <MESSAGE>
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  uri:    
> <sip:1000 at auaccountonline.com>
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  version: <SIP/2.0>
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=2
> Dec 29 00:16:30 [12497] DBG:core:parse_via_param: found param type 232,
> <branch> = <z9hG4bK35d9.4a9a8903.0>; state=16
> Dec 29 00:16:30 [12497] DBG:core:parse_via: end of header reached, state=5
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: via found, flags=2
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: this is the first via
> Dec 29 00:16:30 [12497] DBG:core:receive_msg: After parse_msg...
> Dec 29 00:16:30 [12497] DBG:core:receive_msg: preparing to run routing
> scripts...
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=100
> Dec 29 00:16:30 [12497] DBG:core:parse_to: end of header reached, state=9
> Dec 29 00:16:30 [12497] DBG:core:parse_to: display={},
> ruri={sip:1000 at auaccountonline.com}
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: <To> [34];
> uri=[sip:1000 at auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: to body
> [sip:1000 at auaccountonline.com
> ]
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: cseq <CSeq>: <10>
> <MESSAGE>
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: content_length=28
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: found end of header
> Dec 29 00:16:30 [12497] DBG:maxfwd:is_maxfwd_present: max_forwards header
> not found!
> Dec 29 00:16:30 [12497] DBG:core:parse_to_param:
> tag=533cb9e91f4b999cf76861cbb9ed54ed-cf35
> Dec 29 00:16:30 [12497] DBG:core:parse_to: end of header reached, state=29
> Dec 29 00:16:30 [12497] DBG:core:parse_to: display={},
> ruri={sip:admin*debian64 at ac.auaccountonline.com}
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=200
> Dec 29 00:16:30 [12497] DBG:rr:find_first_route: No Route headers found
> Dec 29 00:16:30 [12497] DBG:rr:loose_route: There is no Route HF
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if host==us:
> 23==23 &&  [auaccountonline.com] == [auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if port 5060
> matches port 5060
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if host==us:
> 23==23 &&  [auaccountonline.com] == [auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if port 5060
> matches port 5060
> Dec 29 00:16:30 [12497] DBG:registrar:lookup: '1000' Not found in usrloc
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if host==us:
> 23==23 &&  [auaccountonline.com] == [auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:grep_sock_info: checking if port 5060
> matches port 5060
> *** xmpp-handled MESSAGE message.
> Dec 29 00:16:30 [12497] DBG:xmpp:cmd_send_message: cmd_send_message
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=ffffffffffffffff
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=18
> Dec 29 00:16:30 [12497] DBG:xmpp:cmd_send_message: message from
> <sip:admin*debian64 at ac.auaccountonline.com>
> Dec 29 00:16:30 [12497] DBG:xmpp:cmd_send_message: using R-URI as
> destination
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=ffffffffffffffff
> Dec 29 00:16:30 [12497] DBG:core:check_via_address: params 127.0.0.1,
> 127.0.0.1, 0
> Dec 29 00:16:30 [12497] DBG:core:destroy_avp_list: destroying list (nil)
> Dec 29 00:16:30 [12497] DBG:core:receive_msg: cleaning up
> Dec 29 00:16:30 [12497] DBG:core:parse_msg: SIP Reply  (status):
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  version: <SIP/2.0>
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  status:  <200>
> Dec 29 00:16:30 [12497] DBG:core:parse_msg:  reason:  <Accepted>
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=2
> Dec 29 00:16:30 [12497] DBG:core:parse_via_param: found param type 232,
> <branch> = <z9hG4bK35d9.4a9a8903.0>; state=16
> Dec 29 00:16:30 [12497] DBG:core:parse_via: end of header reached, state=5
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: via found, flags=2
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: this is the first via
> Dec 29 00:16:30 [12497] DBG:core:receive_msg: After parse_msg...
> Dec 29 00:16:30 [12497] DBG:core:forward_reply: found module tm, passing
> reply to it
> Dec 29 00:16:30 [12497] DBG:tm:t_check: start=0xffffffffffffffff
> Dec 29 00:16:30 [12497] DBG:core:parse_headers: flags=22
> Dec 29 00:16:30 [12497] DBG:core:parse_to_param:
> tag=c97b4d1cb1f3d0da549e06a8d482ef63.3a9e
> Dec 29 00:16:30 [12497] DBG:core:parse_to: end of header reached, state=29
> Dec 29 00:16:30 [12497] DBG:core:parse_to: display={},
> ruri={sip:1000 at auaccountonline.com}
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: <To> [76];
> uri=[sip:1000 at auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: to body
> [sip:1000 at auaccountonline.com]
> Dec 29 00:16:30 [12497] DBG:core:get_hdr_field: cseq <CSeq>: <10>
> <MESSAGE>
> Dec 29 00:16:30 [12497] DBG:tm:t_reply_matching: hash 40275 label
> 815311268 branch 0
> Dec 29 00:16:30 [12497] DBG:tm:t_reply_matching: REF_UNSAFE: after is 1
> Dec 29 00:16:30 [12497] DBG:tm:t_reply_matching: reply matched
> (T=0x7ff449440280)!
> Dec 29 00:16:30 [12497] DBG:tm:t_check: end=0x7ff449440280
> Dec 29 00:16:30 [12497] DBG:tm:reply_received: org. status uas=0, uac[0]=0
> local=2 is_invite=0)
> Dec 29 00:16:30 [12497] DBG:tm:t_should_relay_response: T_code=0,
> new_code=200
> Dec 29 00:16:30 [12497] DBG:tm:local_reply: branch=0, save=0, winner=0
> Dec 29 00:16:30 [12497] DBG:tm:local_reply: local transaction completed
> Dec 29 00:16:30 [12497] DBG:tm:cleanup_uac_timers: RETR/FR timers reset
> Dec 29 00:16:30 [12497] DBG:tm:insert_timer_unsafe: [2]: 0x7ff449440300
> (421)
> Dec 29 00:16:30 [12497] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
> Dec 29 00:16:30 [12497] DBG:core:destroy_avp_list: destroying list (nil)
> Dec 29 00:16:30 [12497] DBG:core:receive_msg: cleaning up
> Dec 29 00:16:30 [12500] DBG:xmpp:xmpp_component_child_process: got pipe
> cmd 2
> Dec 29 00:16:30 [12500] DBG:xmpp:do_send_message_component:
> do_send_message_component from=[sip:admin*debian64 at ac.auaccountonline.com]
> to=[sip:1000 at auaccountonline.com] body=[hai hai hai hai hai hai hai ]
> Dec 29 00:16:30 [12500] DBG:xmpp:xode_send: xode_send [<message
> id='533cb9e91f4b999cf76861cbb9ed54ed-cf35'
> from='admin*debian64*ac.auaccountonline.com at debian64' to='1000'
> type='chat'><body>hai hai hai hai hai hai hai </body></message>]
> Dec 29 00:16:31 [12500] DBG:xmpp:xmpp_component_child_process: server read
> [<message from='1000' to='admin*debian64*ac.auaccountonline.com at debian64'
> type='error' id='533cb9e91f4b999cf76861cbb9ed54ed-cf35'><body>hai hai hai
> hai hai hai hai </body><error code='404'
> type='cancel'><remote-server-not-found
> xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></message>]
> Dec 29 00:16:31 [12500] DBG:xmpp:stream_node_callback: stream callback: 1:
> message
> Dec 29 00:16:31 [12500] DBG:xmpp:stream_node_callback: XMPP IM received
> Dec 29 00:16:31 [12500] DBG:xmpp:stream_node_callback: received message
> error stanza
> Dec 29 00:16:31 [12499] DBG:tm:utimer_routine: timer
> routine:4,tl=0x7ff4494404a0 next=(nil), timeout=416800000
> Dec 29 00:16:36 [12499] DBG:tm:timer_routine: timer
> routine:2,tl=0x7ff449440300 next=(nil), timeout=421
> Dec 29 00:16:36 [12499] DBG:tm:wait_handler: removing 0x7ff449440280 from
> table
> Dec 29 00:16:36 [12499] DBG:tm:delete_cell: delete transaction
> 0x7ff449440280
> Dec 29 00:16:36 [12499] DBG:tm:wait_handler: done
> 
> But when i execute command dig auaccountonline.com i'm getting dns records
> successfully. Is the above pasted cfg is necessary for to and fro
> communications of xmpp-sip clients. Or any thing wrong with my config
> file. I have been stuck on this issues from last one week. can you figure
> it out. Thanks in  Advance.
> 
> Anca Vamanu-2 wrote:
>> 
>> Hi,
>> 
>> The problem is very clear from the replies that you get - the SIP 
>> Message sent to the xmpp account goes into the part with lookup 
>> location. You have to call
>> xmpp_send_message function before that so that the message is handled by 
>> the gateway instead.
>> 
>> Regards,
>> 
>> -- 
>> Anca Vamanu
>> www.voice-system.ro
>> 
>> 
>> 
>> Indiver wrote:
>>> Hi Anca .
>>> As per your suggestions i can add sip buddy from xmpp client. I can even
>>> send messages to sip client. But the problem is i cannot reply back to
>>> the
>>> xmpp buddy. It is getting 403 forbidden error some times and 407 Proxy
>>> authentication error some times. I tried to add xmpp buddy in sip client
>>> as
>>> follows
>>>  sip:username<delim>jabber_server at gateway_domain
>>> But in vain. Is any further modifications required in opensips in order
>>> to
>>> send message to xmpp buddy?. cause that in the error log it is searching
>>> for
>>> xmpp buddy in usr loc table and it was unable to find that and
>>> displaying
>>> 403 forbidden error. Can u suggest me where i went wrong.Thanks in
>>> Advance!
>>>
>>> Anca Vamanu-2 wrote:
>>>   
>>>> Hi Indiver,
>>>>
>>>> The 'destination address' refers to the address of the buddy in the 
>>>> contact list. So in the xmpp account you must add the SIP buddy with
>>>> the 
>>>> address:
>>>>
>>>> "sip_username<delim>opensips_domain at xmpp_domain"
>>>>
>>>> xmpp_domain - must be the domain used by opensips when registering as a 
>>>> component in jabberd2. And the xmpp srv record for that domain must 
>>>> point to the ip of the machine where jabberd2 is running.
>>>>
>>>> In SIP, the xmpp buddy must have the following address format:
>>>>
>>>> "sip:username<delim>jabber_server at gateway_domain"
>>>>
>>>> The gateway_domain is the domain of the opensips gateway. This address 
>>>> format is used to ensure that the message gets to the gateway. The 
>>>> gateway will the decode the address and get the right xmpp address of 
>>>> the target : username at jabber_server.
>>>>
>>>> Regards,
>>>>
>>>> -- 
>>>> Anca Vamanu
>>>> www.voice-system.ro
>>>>
>>>>
>>>>
>>>> Indiver wrote:
>>>>     
>>>>> Hi Every one,
>>>>>
>>>>> I'm working on xmpp module of opensips. I  configured opensips as
>>>>> component
>>>>> mode. I installed jabberd2 and configured successfully. When i look up
>>>>> the
>>>>> logs of opensips it showing the handshake successful message with my
>>>>> local
>>>>> jabberd2 server installed in my system. This make foolish but i'm
>>>>> confused
>>>>> how to move on from here. As i must configure sipcommunicator(jabber
>>>>> client)
>>>>> with my local jabberd2 server user name and password(i.e u
>>>>> name:jabberd2
>>>>> password:secret)or with the pattern suggested in xmpp doc.Cause that 
>>>>> i
>>>>> can't understand the format i read in xmpp module of opensips
>>>>> doc.Below
>>>>> is
>>>>> the part mention in the xmpp doc i confused about, so i'm pasting that
>>>>>
>>>>> In both cases, the destination address must have the same pattern:
>>>>>
>>>>> “sip:username<delim>jabber_server at gateway_domain>>>>>
>>>>> From a jabber client's point of view, the destination will look like:
>>>>>
>>>>> “sip_username<delim>opensips_domain at xmpp_domain” .
>>>>>
>>>>> what does it mean? .   can any one suggest how to move on from here in
>>>>> order
>>>>> to test configured xmpp module.Thanks in advance
>>>>>   
>>>>>       
>>>> _______________________________________________
>>>> 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
>> 
>> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/xmpp-configuration-tp4192010p4226293.html
Sent from the OpenSIPS - Users mailing list archive at Nabble.com.



More information about the Users mailing list