Hello Ser users and developers!
I have a question about userloc. I'm authenticating my sip users (Allied Telesyn RG613-TX boxes) against mysql with a given username (msn1-macaddress / msn2-macaddress) and auto generated password. Authentication works fine, but my question is related to how ser stores users location in the location db.
Example: Username: msn1-12345678 Phonenumber: 12345 Contact: sip:12345@192.168.1.1:5060
When this user is register the following I added to the location db: Username: 12345 Domain: Contact: sip:12345@192.168.1.1:5060 +++
My question is regarding the username column, is it possible that it contains the username of the sip user, not the username in the contact uri?
Regards
Runar Lyngmo
On 30-08 11:02, Runar Lyngmo wrote:
Hello Ser users and developers!
I have a question about userloc. I'm authenticating my sip users (Allied Telesyn RG613-TX boxes) against mysql with a given username (msn1-macaddress / msn2-macaddress) and auto generated password. Authentication works fine, but my question is related to how ser stores users location in the location db.
Example: Username: msn1-12345678 Phonenumber: 12345 Contact: sip:12345@192.168.1.1:5060
When this user is register the following I added to the location db: Username: 12345 Domain: Contact: sip:12345@192.168.1.1:5060 +++
My question is regarding the username column, is it possible that it contains the username of the sip user, not the username in the contact uri?
Yes, it is the username of the user. It can be completely different from the username in Contact.
Jan.
Thanks for quick reply :)
I have a new question then.
Do I have to enable something in my ser config file to get this functionality? Or is it supposed to be enabled by default? I'm using ser-0.8.14.
My ser registers the username in the sip uri as the username in the location db.
Under I have pasted some content of my mysql db, ngrep log, ser debug (stdout) and config file. Maybe someone can see what's wrong. (most probably all of it) :)
Best Regards,
Runar Lyngmo
mysql> select username,contact from location; +----------+----------------------------------+ | username | contact | +----------+----------------------------------+ | 12345 | sip:12345@10.101.242.255:5060 | +----------+----------------------------------+ 1 row in set (0.00 sec)
mysql> select username,password,email_address from subscriber where username="msn1-0003f5" and domain="sip.test.local"; +-------------+-------------+----------------------------+ | username | password | email_address | +-------------+-------------+----------------------------+ | msn1-0003f5 | msn1-0003f5 | msn1-0003f5@sip.test.local | +-------------+-------------+----------------------------+ 1 row in set (0.00 sec)
---------------------------- NGREP Start----------------------------
# U 10.101.242.255:5060 -> 192.168.20.19:5060 REGISTER sip:sip.test.local;transport=UDP SIP/2.0. User-Agent: ATI-RG613TX/2-0-2_11. From: msn1-0003f5 sip:12345@sip.test.local;tag=AADICAAN2gAD9Qxx. To: msn1-0003f5 sip:12345@sip.test.local. Call-ID: AgBfCgxx@10.101.242.255. CSeq: 2 REGISTER. Contact: sip:12345@10.101.242.255:5060. Max-Forwards: 70. Via: SIP/2.0/UDP 10.101.242.255:5060;branch=z9hG4bKAQBgCgxx. Authorization: Digest username="msn1-0003f5", realm="sip.test.local", nonce="41333187293d494707f1aec40c81785270a74c3d", uri="sip:sip.test.local", response="df3cede49983d6ca9f328fb07f929cbe", cnonce="0000000000000000000000000000a60", nc=00000001, qop=auth.
Content-Length: 0. .
# U 192.168.20.19:5060 -> 10.101.242.255:5060 SIP/2.0 200 OK. From: msn1-0003f5 sip:12345@sip.test.local;tag=AADICAAN2gAD9Qxx. To: msn1-0003f5 sip:12345@sip.test.local;tag=86a6834669ee9242fa3a0405be3ca1df.3ddd. Call-ID: AgBfCgxx@10.101.242.255. CSeq: 2 REGISTER. Via: SIP/2.0/UDP 10.101.242.255:5060;branch=z9hG4bKAQBgCgxx. Contact: sip:12345@10.101.242.255:5060;q=0.00;expires=3600. Server: Sip EXpress router (0.8.14 (i386/linux)). Content-Length: 0. Warning: 392 192.168.20.19:5060 "Noisy feedback tells: pid=13530 req_src_ip=10.101.242.255 req_src_port=5060 in_uri=sip:sip.test.local;transport=UDP out_uri=sip:sip.test.local;transport=UDP via_cnt==1". .
---------------------------- NGREP Stop ----------------------------
---------------------------- SER Debug Start ----------------------------- 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <3> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAABfCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333161939eb5377d3dcb5d96a6ad086df68856] and [41333161eeefffc125a3ad541f791ff6e20188b2] 0(13530) pre_auth(): Invalid nonce value received 0(13530) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.test.local", nonce="41333186f507c5895e47b9df74a3cf984ab0471e", qop="auth" ' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <3> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAQBfCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333186f507c5895e47b9df74a3cf984ab0471e] and [41333186f507c5895e47b9df74a3cf984ab0471e] 0(13530) query="select password,rpid from subscriber where username='msn1-0003f5' AND domain='sip.test.local'" 0(13530) HA1 string calculated: 38c9cb54210106900a13b2c7144fca53 0(13530) check_response(): Our result = '6995eb2dd11ca74a7204b4d2aeb31768' 0(13530) check_response(): Authorization is OK 0(13530) save_rpid(): rpid value is '' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) parse_headers: flags=33554432 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <1> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAABgCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) pre_auth(): Credentials with given realm not found 0(13530) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.test.local", nonce="41333187293d494707f1aec40c81785270a74c3d", qop="auth" ' 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <2> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAQBgCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333187293d494707f1aec40c81785270a74c3d] and [41333187293d494707f1aec40c81785270a74c3d] 0(13530) query="select password,rpid from subscriber where username='msn1-0003f5' AND domain='sip.test.local'" 0(13530) HA1 string calculated: 38c9cb54210106900a13b2c7144fca53 0(13530) check_response(): Our result = 'df3cede49983d6ca9f328fb07f929cbe' 0(13530) check_response(): Authorization is OK 0(13530) save_rpid(): rpid value is '' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) parse_headers: flags=33554432 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 1(13532) INFO: signal 2 received 0(13530) INT received, program terminates 2(13534) INFO: signal 15 received 2(13534) Memory status (pkg): 2(13534) fm_status (0x80c88c0): 2(13534) heap size= 1047440 2(13534) dumping free list: 2(13534) hash = 1 fragments no.: 3,
------------------------------- SER Debug STOP -----------------------------
----------------------------Part of my Config File Start -------------------
modparam("auth_db", "use_rpid", 1)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line modparam("usrloc", "db_mode", 2) # minimize write back window - default is 60 seconds modparam("usrloc", "timer_interval", 10) # database location modparam("usrloc", "db_url", "mysql://ser:*@127.0.0.1/ser")
# -- 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") modparam("auth_db", "rpid_column", "rpid") modparam("auth_db", "db_url","mysql://ser:*@127.0.0.1/ser")
# -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1)
modparam("group", "use_domain", 1) modparam("group", "db_url", "mysql://ser:*@127.0.0.1/ser")
modparam("registrar", "append_branches", yes)
alias="sip.test.local"
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol
record_route();
if (uri==myself) { if ( method=="REGISTER" ) { log("REGISTER: Trying to register user..."); # verify credentials if (!www_authorize("", "subscriber")) { www_challenge("", "1"); break; } save("location"); break; } else { if ( src_ip==127.0.0.1 || src_ip==192.168.20.18 ) { log("GATEWAY ORIGINATED CALL"); if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; };
route(2);
break; };
if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "1"); break; } else { consume_credentials(); } if ( lookup("location") ) { log("Here - TRY BREAKING"); } else { # PSTN Destination.. Trying.. log("PSTN Destination.. Trying.."); route(1); break; };
route(2); break; }; };
if ( method=="ACK" || method=="CANCEL" || method=="BYE" ) { route(2); break; };
sl_send_reply("403", "Call cannot be served here"); break; }
# # PSTN Routing #
route[1] { rewritehostport("192.168.20.18:5090"); if (!t_relay()) { sl_reply_error(); break; }; break; }
# # Just Relay #
route[2] { append_branch();
if (!t_relay()) { sl_reply_error(); break; }; }
------------------------------- Config File Stop --------------------------- -----Opprinnelig melding----- Fra: Jan Janak [mailto:jan@iptel.org] Sendt: 30. august 2004 14:08 Til: Runar Lyngmo Kopi: serusers@lists.iptel.org Emne: Re: [Serusers] Question about usrloc
On 30-08 11:02, Runar Lyngmo wrote:
Hello Ser users and developers!
I have a question about userloc. I'm authenticating my sip users (Allied Telesyn RG613-TX boxes) against mysql with a given username
(msn1-macaddress
/ msn2-macaddress) and auto generated password. Authentication works fine, but my question is related to how ser stores users location in the
location
db.
Example: Username: msn1-12345678 Phonenumber: 12345 Contact: sip:12345@192.168.1.1:5060
When this user is register the following I added to the location db: Username: 12345 Domain: Contact: sip:12345@192.168.1.1:5060 +++
My question is regarding the username column, is it possible that it contains the username of the sip user, not the username in the contact
uri?
Yes, it is the username of the user. It can be completely different from the username in Contact.
Jan.
On 30-08 16:06, Runar Lyngmo wrote:
Thanks for quick reply :)
I have a new question then.
Do I have to enable something in my ser config file to get this functionality? Or is it supposed to be enabled by default? I'm using ser-0.8.14.
My ser registers the username in the sip uri as the username in the location db.
No, that's how it works by default.
Under I have pasted some content of my mysql db, ngrep log, ser debug (stdout) and config file. Maybe someone can see what's wrong. (most probably all of it) :)
The value of username comes from the username part of To URI. What probably confuses you that there is msn1-0003f5 in display name, this is just an informative text used by user agents to display the name of the person in human human readable way. It is optional.
Jan.
mysql> select username,contact from location; +----------+----------------------------------+ | username | contact | +----------+----------------------------------+ | 12345 | sip:12345@10.101.242.255:5060 | +----------+----------------------------------+ 1 row in set (0.00 sec)
mysql> select username,password,email_address from subscriber where username="msn1-0003f5" and domain="sip.test.local"; +-------------+-------------+----------------------------+ | username | password | email_address | +-------------+-------------+----------------------------+ | msn1-0003f5 | msn1-0003f5 | msn1-0003f5@sip.test.local | +-------------+-------------+----------------------------+ 1 row in set (0.00 sec)
---------------------------- NGREP Start----------------------------
# U 10.101.242.255:5060 -> 192.168.20.19:5060 REGISTER sip:sip.test.local;transport=UDP SIP/2.0. User-Agent: ATI-RG613TX/2-0-2_11. From: msn1-0003f5 sip:12345@sip.test.local;tag=AADICAAN2gAD9Qxx. To: msn1-0003f5 sip:12345@sip.test.local. Call-ID: AgBfCgxx@10.101.242.255. CSeq: 2 REGISTER. Contact: sip:12345@10.101.242.255:5060. Max-Forwards: 70. Via: SIP/2.0/UDP 10.101.242.255:5060;branch=z9hG4bKAQBgCgxx. Authorization: Digest username="msn1-0003f5", realm="sip.test.local", nonce="41333187293d494707f1aec40c81785270a74c3d", uri="sip:sip.test.local", response="df3cede49983d6ca9f328fb07f929cbe", cnonce="0000000000000000000000000000a60", nc=00000001, qop=auth.
Content-Length: 0. .
# U 192.168.20.19:5060 -> 10.101.242.255:5060 SIP/2.0 200 OK. From: msn1-0003f5 sip:12345@sip.test.local;tag=AADICAAN2gAD9Qxx. To: msn1-0003f5 sip:12345@sip.test.local;tag=86a6834669ee9242fa3a0405be3ca1df.3ddd. Call-ID: AgBfCgxx@10.101.242.255. CSeq: 2 REGISTER. Via: SIP/2.0/UDP 10.101.242.255:5060;branch=z9hG4bKAQBgCgxx. Contact: sip:12345@10.101.242.255:5060;q=0.00;expires=3600. Server: Sip EXpress router (0.8.14 (i386/linux)). Content-Length: 0. Warning: 392 192.168.20.19:5060 "Noisy feedback tells: pid=13530 req_src_ip=10.101.242.255 req_src_port=5060 in_uri=sip:sip.test.local;transport=UDP out_uri=sip:sip.test.local;transport=UDP via_cnt==1". .
---------------------------- NGREP Stop ----------------------------
---------------------------- SER Debug Start ----------------------------- 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <3> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAABfCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333161939eb5377d3dcb5d96a6ad086df68856] and [41333161eeefffc125a3ad541f791ff6e20188b2] 0(13530) pre_auth(): Invalid nonce value received 0(13530) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.test.local", nonce="41333186f507c5895e47b9df74a3cf984ab0471e", qop="auth" ' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <3> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAQBfCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333186f507c5895e47b9df74a3cf984ab0471e] and [41333186f507c5895e47b9df74a3cf984ab0471e] 0(13530) query="select password,rpid from subscriber where username='msn1-0003f5' AND domain='sip.test.local'" 0(13530) HA1 string calculated: 38c9cb54210106900a13b2c7144fca53 0(13530) check_response(): Our result = '6995eb2dd11ca74a7204b4d2aeb31768' 0(13530) check_response(): Authorization is OK 0(13530) save_rpid(): rpid value is '' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) parse_headers: flags=33554432 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <1> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAABgCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) pre_auth(): Credentials with given realm not found 0(13530) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.test.local", nonce="41333187293d494707f1aec40c81785270a74c3d", qop="auth" ' 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 0(13530) SIP Request: 0(13530) method: <REGISTER> 0(13530) uri: sip:sip.test.local;transport=UDP 0(13530) version: <SIP/2.0> 0(13530) parse_headers: flags=1 0(13530) end of header reached, state=9 0(13530) DEBUG: get_hdr_field: <To> [40]; uri=[sip:12345@sip.test.local] 0(13530) DEBUG: to body [msn1-0003f5 sip:12345@sip.test.local ] 0(13530) get_hdr_field: cseq <CSeq>: <2> <REGISTER> 0(13530) Found param type 232, <branch> = <z9hG4bKAQBgCgxx>; state=16 0(13530) end of header reached, state=5 0(13530) parse_headers: Via found, flags=1 0(13530) parse_headers: this is the first via 0(13530) After parse_msg... 0(13530) preparing to run routing scripts... 0(13530) DEBUG : is_maxfwd_present: max_forward header already found! 0(13530) DEBUG: is_maxfwd_present: value = 70 0(13530) DEBUG: add_param: tag=AADICAAN2gAD9Qxx 0(13530) end of header reached, state=29 0(13530) check_self - checking if host==us: 14==13 && [sip.test.local] == [192.168.20.19] 0(13530) check_self - checking if port 5060 matches port 5060 0(13530) REGISTER: Trying to register user... 0(13530) parse_headers: flags=4096 0(13530) check_nonce(): comparing [41333187293d494707f1aec40c81785270a74c3d] and [41333187293d494707f1aec40c81785270a74c3d] 0(13530) query="select password,rpid from subscriber where username='msn1-0003f5' AND domain='sip.test.local'" 0(13530) HA1 string calculated: 38c9cb54210106900a13b2c7144fca53 0(13530) check_response(): Our result = 'df3cede49983d6ca9f328fb07f929cbe' 0(13530) check_response(): Authorization is OK 0(13530) save_rpid(): rpid value is '' 0(13530) parse_headers: flags=-1 0(13530) DEBUG: get_hdr_body : content_length=0 0(13530) found end of header 0(13530) parse_headers: flags=33554432 0(13530) parse_headers: flags=-1 0(13530) check_via_address(10.101.242.255, 10.101.242.255, 0) 0(13530) DEBUG:destroy_avp_list: destroing list (nil) 0(13530) receive_msg: cleaning up 1(13532) INFO: signal 2 received 0(13530) INT received, program terminates 2(13534) INFO: signal 15 received 2(13534) Memory status (pkg): 2(13534) fm_status (0x80c88c0): 2(13534) heap size= 1047440 2(13534) dumping free list: 2(13534) hash = 1 fragments no.: 3,
------------------------------- SER Debug STOP -----------------------------
----------------------------Part of my Config File Start -------------------
modparam("auth_db", "use_rpid", 1)
# Uncomment this if you want to use SQL database # for persistent storage and comment the previous line modparam("usrloc", "db_mode", 2) # minimize write back window - default is 60 seconds modparam("usrloc", "timer_interval", 10) # database location modparam("usrloc", "db_url", "mysql://ser:*@127.0.0.1/ser")
# -- 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") modparam("auth_db", "rpid_column", "rpid") modparam("auth_db", "db_url","mysql://ser:*@127.0.0.1/ser")
# -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1)
modparam("group", "use_domain", 1) modparam("group", "db_url", "mysql://ser:*@127.0.0.1/ser")
modparam("registrar", "append_branches", yes)
alias="sip.test.local"
route{ # initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol record_route(); if (uri==myself) { if ( method=="REGISTER" ) { log("REGISTER: Trying to register user..."); # verify credentials if (!www_authorize("", "subscriber")) { www_challenge("", "1"); break; } save("location"); break; } else { if ( src_ip==127.0.0.1 || src_ip==192.168.20.18 ) { log("GATEWAY ORIGINATED CALL"); if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; route(2); break; }; if (!proxy_authorize("", "subscriber")) { proxy_challenge("", "1"); break; } else { consume_credentials(); } if ( lookup("location") ) { log("Here - TRY BREAKING"); } else { # PSTN Destination.. Trying.. log("PSTN Destination.. Trying.."); route(1); break; }; route(2); break; }; }; if ( method=="ACK" || method=="CANCEL" || method=="BYE" ) { route(2); break; }; sl_send_reply("403", "Call cannot be served here"); break;
}
# # PSTN Routing #
route[1] { rewritehostport("192.168.20.18:5090"); if (!t_relay()) { sl_reply_error(); break; }; break; }
# # Just Relay #
route[2] { append_branch();
if (!t_relay()) { sl_reply_error(); break; };
}
------------------------------- Config File Stop --------------------------- -----Opprinnelig melding----- Fra: Jan Janak [mailto:jan@iptel.org] Sendt: 30. august 2004 14:08 Til: Runar Lyngmo Kopi: serusers@lists.iptel.org Emne: Re: [Serusers] Question about usrloc
On 30-08 11:02, Runar Lyngmo wrote:
Hello Ser users and developers!
I have a question about userloc. I'm authenticating my sip users (Allied Telesyn RG613-TX boxes) against mysql with a given username
(msn1-macaddress
/ msn2-macaddress) and auto generated password. Authentication works fine, but my question is related to how ser stores users location in the
location
db.
Example: Username: msn1-12345678 Phonenumber: 12345 Contact: sip:12345@192.168.1.1:5060
When this user is register the following I added to the location db: Username: 12345 Domain: Contact: sip:12345@192.168.1.1:5060 +++
My question is regarding the username column, is it possible that it contains the username of the sip user, not the username in the contact
uri?
Yes, it is the username of the user. It can be completely different from the username in Contact.
Jan.
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
The value of username comes from the username part of To URI. What probably confuses you that there is msn1-0003f5 in display name, this is just an informative text used by user agents to display the name of the person in human human readable way. It is optional.
hm, strange, so i send "to: 12345@mysip.de" with Authorization: DIGEST username="msn1-12345678" and then i am register with "12345" ?
serctl ul show 12345
200 OK sip:12345@127.0.0.1;q=0.00;expires=3226
Should it not be a registration with username "msn1-12345678" ?
greets, Markus
Try to understand it like this.
You have email address "My Name myname@email.domain". You have a account <account1> with ISP isp.domain. Now, to send mail, you are using your ISP's mail server as a gateway and they require you to authenticate first. So, you authenticate with account1@isp.domain to the mail server. But how does the email appears to come from? It's "My Name <myname.email.domain>".
The same applies to SIP. You, 12345@mysip.de, REGISTER to a SIP server and it requires you to authenticate first. The authentication ID is <msn1-12345678>. In effect, 12345@mysip.de is the actual user and <msn1-12345678> is just used for authentication.
Zeus
hm, strange, so i send "to: 12345@mysip.de" with Authorization: DIGEST username="msn1-12345678" and then i am register with "12345" ?
serctl ul show 12345
200 OK sip:12345@127.0.0.1;q=0.00;expires=3226
Should it not be a registration with username "msn1-12345678" ?
greets, Markus
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers