[Serusers] Now I am so lost, what am I doing wrong?

Doug Eubanks admin at dougware.net
Wed Jan 5 16:37:56 CET 2005


I am attempting to have SER act as a local registration server, that forwards all registrations to another SIP Registrar/Proxy that routes calls to the PSTN or wherever they go.  The second server also does the call accounting.  The reason that the SER server forwards all registrations to the second server is in case incoming calls match a registered SER user that is logged on, make sure they get routed correctly.

I also need to make sure any BYEs and CANCELs get forwards to end calls in a timely manner.

Can someone take a few moments to tell me what I am doing wrong?  Calls are being forwarded corrently if they are not to a local SER user, but if they go from the SER server back to another SER registered user, the client hangs at "Connecting" and the following debug is given in SER.

Please dont laugh at any major mistakes in my ser.cfg, I am not a newbie to VoIP, I seem to have problems following the routing logic.

Thanks,
Doug

------------------------DEBUG--------------------
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc0ffbd8aaaee9500190201c84d4fda9bdaa0e"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc0ffc3a53257d4fed9fd8a9e0881b5b00271f"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc0ffde486c67b948657808050956bfa859771"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc0ffe11289b60442c539f3e789738cbc68539"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc0fff2bc50922ef2c2fadbcfd17f006f7f10f"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK214fafcc>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <507> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as752e9908
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc1000098b27f1f85a5b9aa863f465b23c034f"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <NOTIFY>
 0(23868)  uri:     <sip:198.67.41.196>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) Found param type 232, <branch> = <z9hG4bK-a013c76b>; state=6
 0(23868) Found param type 235, <rport> = <n/a>; state=17
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.187, 10.0.0.153, 0)
 0(23868) src address different than via header->NAT detected
 0(23868) force_rport and fix_nated_contact and setflag(5)
 0(23868) parse_headers: flags=64
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [21]; uri=[sip:198.67.41.196]
 0(23868) DEBUG: to body [<sip:198.67.41.196>
]
 0(23868) get_hdr_field: cseq <CSeq>: <44> <NOTIFY>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) parse_headers: flags=-1
 0(23868) DEBUG : is_maxfwd_present: max_forward header already found!
 0(23868) DEBUG: is_maxfwd_present: value = 70
 0(23868) DEBUG: add_param: tag=9d074f5b40d37cfo0
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='198.67.41.196'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 13==13 &&  [198.67.41.196] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='198.67.41.196'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) USER UNKNOWN 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.187, 10.0.0.153, 0)
 0(23868) DEBUG: t_addifnew: msg id=267 , global msg id=260 , T on entrance=0xffffffff
 0(23868) parse_headers: flags=-1
 0(23868) parse_headers: flags=60
 0(23868) t_lookup_request: start searching: hash=4561, isACK=0
 0(23868) DEBUG: RFC3261 transaction matching failed
 0(23868) DEBUG: t_lookup_request: no transaction found
 0(23868) DBG: callback type 2, id 3 entered
 0(23868) parse_headers: flags=44
 0(23868) DEBUG: t_check: msg id=267 global id=267 T start=0xb5765b58
 0(23868) DEBUG: t_check: T alredy found!
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.187, 10.0.0.153, 0)
 0(23868) WARNING:vqm_resize: resize(0) called
 0(23868) DBG: callback type 7, id 1 entered
 0(23868) DEBUG: cleanup_uacs: RETR/FR timers reset
 0(23868) DEBUG: add_to_tail_of_timer[2]: 0xb5765ba0
 0(23868) DEBUG: reply sent out. buf=0x80c7968: SIP/2.0 4..., shmem=0xb5768ce8: SIP/2.0 4
 0(23868) DEBUG: t_reply: finished
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <INVITE>
 0(23868)  uri:     <sip:12523152553 at sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) Found param type 235, <rport> = <n/a>; state=6
 0(23868) Found param type 232, <branch> = <z9hG4bK5056EAE3E3B54181A1567665427F3236>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '12523152553' Not found in usrloc
 0(23868) check_via_address(198.67.41.187, 10.0.0.2, 0)
 0(23868) src address different than via header->NAT detected
 0(23868) force_rport and fix_nated_contact and setflag(5)
 0(23868) parse_headers: flags=64
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [35]; uri=[sip:12523152553 at sip.simflex.net]
 0(23868) DEBUG: to body [<sip:12523152553 at sip.simflex.net>
]
 0(23868) parse_headers: flags=-1
 0(23868) get_hdr_field: cseq <CSeq>: <34703> <INVITE>
 0(23868) DEBUG: get_hdr_body : content_length=248
 0(23868) found end of header
 0(23868) DEBUG : is_maxfwd_present: max_forward header already found!
 0(23868) DEBUG: is_maxfwd_present: value = 70
 0(23868) DEBUG: add_param: tag=2192119934
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) rwrite(): Rewriting Request-URI with 'sip:12523152553 at 198.67.41.187:5060'
 0(23868) check_self - checking if host==us: 13==13 &&  [198.67.41.187] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) check_self: host != me
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 1(23870) DEBUG: timer routine:2,tl=0xb5765ba0 next=(nil)
 1(23870) DEBUG: wait_handler : removing 0xb5765b58 from table
 1(23870) DEBUG: delete transaction 0xb5765b58
 1(23870) DEBUG: wait_handler : done
 0(23868) SIP Request:
 0(23868)  method:  <INVITE>
 0(23868)  uri:     <sip:12523152553 at sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) Found param type 235, <rport> = <n/a>; state=6
 0(23868) Found param type 232, <branch> = <z9hG4bK5056EAE3E3B54181A1567665427F3236>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '12523152553' Not found in usrloc
 0(23868) check_via_address(198.67.41.187, 10.0.0.2, 0)
 0(23868) src address different than via header->NAT detected
 0(23868) force_rport and fix_nated_contact and setflag(5)
 0(23868) parse_headers: flags=64
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [35]; uri=[sip:12523152553 at sip.simflex.net]
 0(23868) DEBUG: to body [<sip:12523152553 at sip.simflex.net>
]
 0(23868) parse_headers: flags=-1
 0(23868) get_hdr_field: cseq <CSeq>: <34703> <INVITE>
 0(23868) DEBUG: get_hdr_body : content_length=248
 0(23868) found end of header
 0(23868) DEBUG : is_maxfwd_present: max_forward header already found!
 0(23868) DEBUG: is_maxfwd_present: value = 70
 0(23868) DEBUG: add_param: tag=2192119934
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) rwrite(): Rewriting Request-URI with 'sip:12523152553 at 198.67.41.187:5060'
 0(23868) check_self - checking if host==us: 13==13 &&  [198.67.41.187] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) check_self: host != me
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <INVITE>
 0(23868)  uri:     <sip:12523152553 at sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) Found param type 235, <rport> = <n/a>; state=6
 0(23868) Found param type 232, <branch> = <z9hG4bK5056EAE3E3B54181A1567665427F3236>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '12523152553' Not found in usrloc
 0(23868) check_via_address(198.67.41.187, 10.0.0.2, 0)
 0(23868) src address different than via header->NAT detected
 0(23868) force_rport and fix_nated_contact and setflag(5)
 0(23868) parse_headers: flags=64
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [35]; uri=[sip:12523152553 at sip.simflex.net]
 0(23868) DEBUG: to body [<sip:12523152553 at sip.simflex.net>
]
 0(23868) parse_headers: flags=-1
 0(23868) get_hdr_field: cseq <CSeq>: <34703> <INVITE>
 0(23868) DEBUG: get_hdr_body : content_length=248
 0(23868) found end of header
 0(23868) DEBUG : is_maxfwd_present: max_forward header already found!
 0(23868) DEBUG: is_maxfwd_present: value = 70
 0(23868) DEBUG: add_param: tag=2192119934
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) rwrite(): Rewriting Request-URI with 'sip:12523152553 at 198.67.41.187:5060'
 0(23868) check_self - checking if host==us: 13==13 &&  [198.67.41.187] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) check_self: host != me
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK04a05d3f>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <508> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as749a5cd0
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc100f43518965318441d97390c7409e111c92"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK04a05d3f>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <508> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as749a5cd0
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc101064bee064aecb87e2007409b402b3c13d"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up
 0(23868) SIP Request:
 0(23868)  method:  <REGISTER>
 0(23868)  uri:     <sip:sip.simflex.net>
 0(23868)  version: <SIP/2.0>
 0(23868) parse_headers: flags=1
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=1
 0(23868) parse_headers: this is the first via
 0(23868) After parse_msg...
 0(23868) preparing to run routing scripts...
 0(23868) lookup(): '' Not found in usrloc
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG : is_maxfwd_present: searching for max_forwards header
 0(23868) parse_headers: flags=128
 0(23868) Found param type 232, <branch> = <z9hG4bK04a05d3f>; state=16
 0(23868) end of header reached, state=5
 0(23868) parse_headers: Via found, flags=128
 0(23868) parse_headers: this is the second via
 0(23868) end of header reached, state=9
 0(23868) DEBUG: get_hdr_field: <To> [27]; uri=[sip:19990 at 198.67.41.194]
 0(23868) DEBUG: to body [<sip:19990 at 198.67.41.194>
]
 0(23868) get_hdr_field: cseq <CSeq>: <508> <REGISTER>
 0(23868) DEBUG: get_hdr_body : content_length=0
 0(23868) found end of header
 0(23868) DEBUG: is_maxfwd_present: max_forwards header not found!
 0(23868) DEBUG: add_param: tag=as749a5cd0
 0(23868) end of header reached, state=29
 0(23868) parse_headers: flags=256
 0(23868) find_first_route(): No Route headers found
 0(23868) loose_route(): There is no Route HF
 0(23868) lookup(): '' Not found in usrloc
 0(23868) query="select username from subscriber where username='' AND domain='sip.simflex.net'"
 0(23868) does_uri_exit(): User in request uri does not exist
 0(23868) check_self - checking if host==us: 15==13 &&  [sip.simflex.net] == [198.67.41.196]
 0(23868) check_self - checking if port 5060 matches port 5060
 0(23868) parse_headers: flags=4096
 0(23868) pre_auth(): Credentials with given realm not found
 0(23868) build_auth_hf(): 'WWW-Authenticate: Digest realm="sip.simflex.net", nonce="41dc1011041fc3ddd6f97826e2a678e4ce40b18f"
'
 0(23868) parse_headers: flags=-1
 0(23868) check_via_address(198.67.41.194, 198.67.41.194, 0)
 0(23868) DEBUG:destroy_avp_list: destroing list (nil)
 0(23868) receive_msg: cleaning up






--------------My ser.cfg--------------

# ----------- global configuration parameters ------------------------
#debug=7         # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no        # (cmd line: -E)

# Uncomment these lines to enter debugging mode 
debug=10
fork=no
log_stderror=yes

check_via=no        # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
port=5060
fifo_mode=0777
fifo="/tmp/ser_fifo"
listen=198.67.41.196
alias=sip.simflex.net

# ------------------ module loading ----------------------------------
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/domain.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/mangler.so"
loadmodule "/usr/lib/ser/modules/nathelper.so"
loadmodule "/usr/lib/ser/modules/vm.so"
loadmodule "/usr/lib/ser/modules/uri.so"
loadmodule "/usr/lib/ser/modules/acc.so"
loadmodule "/usr/lib/ser/modules/group.so"
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
loadmodule "/usr/lib/ser/modules/textops.so"
loadmodule "/usr/lib/ser/modules/xlog.so"

# ----------------- setting module-specific parameters ---------------
modparam("usrloc", "db_mode", 1)
modparam("acc", "log_level", 1) 
modparam("acc", "log_flag", 1 ) 
modparam("acc", "db_flag", 1)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "db_url", "REMOVED FROM HERE")
modparam("acc", "db_url", "REMOVED FROM HERE")
modparam("auth_db", "password_column", "password")
modparam("rr", "enable_full_lr", 1)
modparam("registrar", "nat_flag", 5)
modparam("nathelper", "natping_interval", 60)
modparam("nathelper", "ping_nated_only", 1)
modparam("xlog", "buf_size", 8192)

# -------------------------  request routing logic -------------------
# main routing logic

route{

        lookup("aliases");

        if (nat_uac_test("2")) {
                log(1, "src address different than via header->NAT detected\n");
                log(1, "force_rport and fix_nated_contact and setflag(5)\n");
                fix_nated_contact();
                append_hf("P-hint: fixed NAT contact for request\r\n");
                # flag 5 indicates that incoming request is from NATed client
                setflag(5);
        };

        # initial sanity checks -- messages with
        # max_forwards==0, or excessively long requests
        if (!mf_process_maxfwd_header("20")) {
                sl_send_reply("483","Too Many Hops");
                break;
        };
        if ( msg:len > max_len ) {
                sl_send_reply("513", "Message too big");
                break;
        };

        record_route();

        if (method=="BYE" || method=="CANCEL") {
                log (1, "Accounting flag on\n");
                t_replicate("198.67.41.194", "5060");
                setflag(1);
        };

        if (loose_route()) {
                if (method=="BYE" || method=="CANCEL") {
                        log (1, "Accounting flag on\n");
                        setflag(1);
                };
                log (1, "Accounting flag on\n");
                setflag(1); 
                t_relay();
                break;
        };
        setflag(1); 

        if (isflagset(5)) {
                t_on_reply("1");
                if (method=="INVITE")  {
                        setflag(1);
                };                      
        };

        if (uri=~"sip:000 at .*") {
                rewritehostport("198.67.41.149:5060");
                t_relay_to_udp("198.67.41.149", "5060");
        };

        if (!lookup("location")) {
                if (!does_uri_exist()) {
                        if (!src_ip==198.67.41.194) {
                                if (uri=~"sip:1[0-9]+ at .*") {
                                        rewritehostport("198.67.41.194:5060");
                                        forward(uri:host, uri:port);
                                };
                        };
                };
        };

        if (uri==myself) {
                if (method=="REGISTER") {
                        if (search("^(Contact|m): .*@(sip.simflex.net)")) {
                                log(1, "[SER]: ALERT: someone trying to set aor==server address\n");
                                sl_send_reply("476", "Server address in contacts is not allowed" );
                                break;
                        };
                        # challenge/response
                        if (!www_authorize("sip.simflex.net", "subscriber")) {
                                www_challenge("sip.simflex.net", "0");
                                log(1, "[SER]: Authentication challenge issued. Waiting for reply.\n");
                                break;
                        };
                          # no registration spoofing.
                        if (!is_user("replicator") & !check_to()) {
                                log(1, "[SER]: Authentication challenge reply failed- Unregistered user.\n");
                                sl_send_reply("403", "Only registered users are allowed");
                                break;
                        };
                        # authentication successful, add entry to our Contact database
                        log(1, "[SER]: Authentication challenge reply ok.\n");
                        if (!save("location")) {
                                sl_reply_error();
                                log(1, "[SER]: ALERT: Unable to save URI to location database.\n");
                                xlog("L_ERR", "time [%Tf] method <%rm> r-uri <%ru>\n");
                        } else {
                                # and replicate the request to the backup server
                                if (!src_ip==198.67.41.194) {
                                        log(1, "[SER]: REPLICATE: Replicating register request\n");
                                        t_replicate("198.67.41.194", "5060");
                                };
                        };
                        break;
                };

                        if (!lookup("location")) {
                                if (!does_uri_exist()) {
                                        log(1,"USER UNKNOWN");
                                        setflag(1); 
                                        sl_send_reply("404", "No such user");
                                        if(t_newtran()){
                                                t_reply("404", "Not Found");
                                        };
                                break;
                        } else {
                                if (is_user_in("Request-URI", "voicemail")) {
                                        setflag(1); 
                                        if(t_newtran()){
                                                t_reply("100","Trying -- just wait a minute !");
                                                if(method=="INVITE" || method=="REFER"){
                                                        log("**************** vm start - begin ******************\n");
                                                        if(!vm("/tmp/am_fifo","voicemail")){
                                                                log("could not contact voicemail\n");
                                                                t_reply("500","could not contact voicemail");
                                                        };
                                                        log("**************** vm start - end ******************\n");
                                                        break;
                                                };
                                                if(method=="BYE"){
                                                        log("**************** vm end/refer - begin ******************\n");
                                                        if(!vm("/tmp/am_fifo","bye")){
                                                                log("could not contact the media server\n");
                                                                t_reply("500","could not contact the media server");
                                                        };
                                                        log("**************** vm end/refer - end ********************\n");
                                                        break;
                                                };
                                        } else {
                                                log("could not create new transaction\n");
                                                sl_send_reply("500","could not create new transaction");
                                        };
                                } else {
                                        setflag(1); 
                                        sl_send_reply("404", "User not online, no voicemail");
                                        acc_db_request("404 User not online","missed_calls");
                                        break;
                                };
                        };
                };

                # forward to current uri now; use stateful forwarding; that
                # works reliably even if we forward from TCP to UDP
                if (!t_relay()) {
                        sl_reply_error();
                        setflag(1); 
                        xlog("L_ERR", "time [%Tf] method <%rm> r-uri <%ru>\n");
                };
        };

}




More information about the sr-users mailing list