[OpenSER-Users] SIP SIMPLE - XMPP interoperability issue
Daniel-Constantin Mierla
miconda at gmail.com
Sun Apr 27 16:57:37 CEST 2008
Hello,
On 04/26/08 22:30, Jeremy McNamara wrote:
> Gaoqiang Qian wrote:
>
>
>> Hello everyone,
>>
>> I have setup the openser server with the very basic default
>> configuration. Now I have to configure my openser server to connect
>> with a xmpp envoironment on another host with a purpose of piloting
>> the SIP SIMPLE - XMPP IOP.
>>
>> So does anyone here have successful experience of configure openser to
>> connect with XMPP on different hosts? Or could someone provide me some
>> instruction how to configure it.
>>
>>
>>
>>
>
>
> I have not been able to make SIMPLE -> XMPP work. I have attached my
> config below.
>
>
> Also, what I do not understand is how the jabber server (jabberd2 in my
> case) knows how to deal with the
> sip_username<delim>openser_domain at xmpp_domain sitaution.
>
when registering as component, the xmpp server should divert the entire
traffic to "xmpp_domain" to openser xmpp module. If server, the xmpp
module will listen and accept messages for that domain.
"sip_username<delim>openser_domain" is considered as a whole the user id
(username) for xmpp. I am looking at enhancing the module to be able to
work without this addressing scheme. The idea behind is to have a
gateway that can work with any domain name, not only with the one
corresponding to your server.
So, I as a sip user, if I want to write to my folks on googletalk, using
the gateway of my sip provider, I will address:
myfriendid*googletalk.com at sip-xmpp-gw.myprovider.com
The xmpp module will set the destination address for xmpp side to
myfriendid at googletalk.com and the source address
mysipid*myprovider.com at xmpp-sip-gw.myprovider.com
Cheers,
Daniel
> My jabber secret is the default secret.
>
>
> Here is my config:
>
>
>
> listen=udp:1.2.3.4:5060
> mpath="/usr/local/lib/openser/modules"
> children = 8
> debug = 3
> fork = yes
> log_stderror = no
> disable_tcp = no
> log_facility = LOG_DAEMON
> tcp_children = 4
> mhomed = no
> server_signature = yes
> reply_to_via = no
> sip_warning = no
> check_via = no
> dns = no
> rev_dns = no
> disable_core_dump = no
> dns_try_ipv6 = yes
> dns_use_search_list = yes
>
> loadmodule "usrloc.so"
> modparam("usrloc", "db_url", "mysql://user:pass@localhost/openser")
> modparam("usrloc", "db_mode", 2)
>
> loadmodule "mysql.so"
>
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "maxfwd.so"
> loadmodule "textops.so"
> loadmodule "registrar.so"
>
> loadmodule "avpops.so"
> loadmodule "pua.so"
> modparam("pua", "db_url", "mysql://user:pass@localhost/openser")
>
> loadmodule "pua_mi.so"
> loadmodule "pua_usrloc.so"
> modparam("pua_usrloc", "default_domain", "valid.domian.name")
>
> loadmodule "rr.so"
> modparam("rr", "enable_full_lr", 1)
>
> loadmodule "mi_fifo.so"
> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
>
> loadmodule "xmpp.so"
> modparam("xmpp", "domain_separator", "*")
> modparam("xmpp", "gateway_domain", "valid.domain.name")
> modparam("xmpp", "xmpp_domain", "valid.domain.name")
> modparam("xmpp", "xmpp_host", "valid.domain.name")
> modparam("xmpp", "backend", "component")
>
> loadmodule "pua_xmpp.so"
> modparam("pua_xmpp", "server_address", "sip:1.2.3.4:5060")
>
> loadmodule "xlog.so"
> modparam("xlog", "buf_size", 4096)
> modparam("xlog", "force_color", 0)
>
> loadmodule "uri.so"
>
> loadmodule "presence.so"
> modparam("presence", "db_url", "mysql://user:pass@localhost/openser")
> modparam("presence", "max_expires", 60)
> modparam("presence", "server_address", "sip:1.2.3.4:5060")
>
> loadmodule "presence_xml.so"
> modparam("presence_xml", "db_url","mysql://user:pass@localhost/openser")
> modparam("presence_xml", "force_active", 1)
>
> #### Main Routing Block ####
> route {
> if (!mf_process_maxfwd_header("10")) {
> sl_send_reply("483","Too Many Hops");
> exit;
> };
>
> if (msg:len >= max_len) {
> sl_send_reply("513", "Message too big");
> exit;
> };
>
> if (has_totag()) {
> if (loose_route()) {
> route(1);
> } else {
> if (is_method("SUBSCRIBE") && $rd = "1.2.3.4") {
> # in-dialog subscribe requests
> route(2);
> exit;
> }
> if ( is_method("ACK") ) {
> if ( t_check_trans() ) {
> # non loose-route, but stateful
> ACK; must be an ACK after a 487 or e.g. 404 from upstream server
> t_relay();
> exit;
> } else {
> # ACK without matching
> transaction ... ignore and discard.\n");
> exit;
> }
> }
> sl_send_reply("404","Not here");
> }
> exit;
> }
>
> if (is_method("CANCEL")) {
> if (t_check_trans())
> t_relay();
> exit;
> }
> t_check_trans();
>
> # record routing
> if (!is_method("REGISTER|MESSAGE"))
> record_route();
>
> if (!uri==myself)
> route(1);
>
> if(is_method("PUBLISH|SUBSCRIBE"))
> route(2);
>
> if (is_method("MESSAGE")) {
> # THIS DOESN'T WORK EITHER :(
> xlog("Processed MESSAGE method\n");
> if (xmpp_send_message()) {
> t_reply("200", "Accepted");
> } else {
> sl_send_reply("404", "Not found");
> }
> exit;
> }
> if (is_method("REGISTER")) {
> sl_send_reply("100", "Trying");
>
> #if (!www_authorize("", "subscriber")) {
> # www_challenge("", "0");
> # exit;
> #};
>
> if(!save("location")) {
> xlog("L_ERR", "Saving contact failed - RURI=$ru
> F=$fu T=$tu IP=$si ID=$ci\n");
> sl_reply_error();
> exit;
> }
> xlog("L_INFO", "Registration Successful - RURI=$ru
> F=$fu\n");
> exit;
> };
>
> if ($rU==NULL) {
> # request with no Username in RURI
> sl_send_reply("484","Address Incomplete");
> exit;
> }
>
> if (is_method("INVITE")) {
> xlog("L_INFO", "In invite\n");
> if (!lookup("location")) {
> xlog("L_ERR", "URI Unknown: $ru\n");
> sl_send_reply("404", "Not Found");
> exit;
> }
> }
> route(1);
> }
> xlog("Unhandled message type: M=$rm RURI=$ru F=$fu T=$tu IP=$si
> ID=$ci\n");
> t_reply("503", "Service unavailable");
> exit;
> }
>
> route[1] {
> if (!t_relay()) {
> sl_reply_error();
> };
> exit;
> }
> route[2] {
> xlog("L_INFO", "Dealing with $rm F:$fu T:$tu\n");
> sl_send_reply("100","trying");
> if (!t_newtran()) {
> sl_reply_error();
> exit;
> };
>
> if(is_method("PUBLISH")) {
> if($hdr(Sender)!= NULL) {
> handle_publish("$hdr(Sender)");
> } else {
> handle_publish("");
> }
> t_release();
> } else {
> if(is_method("SUBSCRIBE")) {
> handle_subscribe();
> if (($hdr(Event)== "presence") && (uri =~
> "^sip:.+ at valid.domain.name")) {
> xlog("L_INFO", "In subscribe, winfo\n");
> pua_xmpp_req_winfo("$ruri",
> "$hdr(Expires)");
> }
> t_release();
> }
> }
> exit;
> }
>
>
> onreply_route[1] {
> exit;
> }
>
>
> _______________________________________________
> Users mailing list
> Users at lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>
--
http://www.asipto.com
More information about the sr-users
mailing list