Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are behind the same NAT (same publich IP, different port, one uses STUN, one not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing. Is this the intended way?
regards klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360 request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination uri: $du= request's uri: $ru=sip:klaus@83.136.33.19:5060 activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du= branch_route[1]: request's uri: $ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003 branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Hi Klaus,
if I'm not wrong, this time the problem resides in the branch iterator implementation (dset.c). It's a unique static iterator. What happens is a nested usage of the iterator: first it is used to run build branches and run the branch route; secondly, it's used from branch_route by xlog to print all branches and destination set....so...you get a iteration inside another iteration, but using same iterator.... :-/
probably that's the reason for the missing third branch route....please re-try same scenario, but remove the "all branches and destination set " xlog specifiers...let me know if it works....
regards, bogdan
PS: if the iterator is the real cause, I will re-implemet it ;)
Klaus Darilion wrote:
Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are behind the same NAT (same publich IP, different port, one uses STUN, one not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing. Is this the intended way?
regards klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360 request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination uri: $du= request's uri: $ru=sip:klaus@83.136.33.19:5060 activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du= branch_route[1]: request's uri: $ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003 branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi Bogdan!
I removed all xlog statements from the branch_route and now it works!
I guess you are right!
thanks klaus
Bogdan-Andrei Iancu wrote:
Hi Klaus,
if I'm not wrong, this time the problem resides in the branch iterator implementation (dset.c). It's a unique static iterator. What happens is a nested usage of the iterator: first it is used to run build branches and run the branch route; secondly, it's used from branch_route by xlog to print all branches and destination set....so...you get a iteration inside another iteration, but using same iterator.... :-/
probably that's the reason for the missing third branch route....please re-try same scenario, but remove the "all branches and destination set " xlog specifiers...let me know if it works....
regards, bogdan
PS: if the iterator is the real cause, I will re-implemet it ;)
Klaus Darilion wrote:
Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are behind the same NAT (same publich IP, different port, one uses STUN, one not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing. Is this the intended way?
regards klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360 request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination uri: $du= request's uri: $ru=sip:klaus@83.136.33.19:5060 activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du= branch_route[1]: request's uri: $ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003 branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi Klaus,
it should be fixed on cvs. let me know if works for you.
regards, bogdan
Klaus Darilion wrote:
Hi Bogdan!
I removed all xlog statements from the branch_route and now it works!
I guess you are right!
thanks klaus
Bogdan-Andrei Iancu wrote:
Hi Klaus,
if I'm not wrong, this time the problem resides in the branch iterator implementation (dset.c). It's a unique static iterator. What happens is a nested usage of the iterator: first it is used to run build branches and run the branch route; secondly, it's used from branch_route by xlog to print all branches and destination set....so...you get a iteration inside another iteration, but using same iterator.... :-/
probably that's the reason for the missing third branch route....please re-try same scenario, but remove the "all branches and destination set " xlog specifiers...let me know if it works....
regards, bogdan
PS: if the iterator is the real cause, I will re-implemet it ;)
Klaus Darilion wrote:
Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are behind the same NAT (same publich IP, different port, one uses STUN, one not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing. Is this the intended way?
regards klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360 request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination uri: $du= request's uri: $ru=sip:klaus@83.136.33.19:5060 activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du= branch_route[1]: request's uri: $ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003 branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
does not compile anymore:
gcc -Wl,-O2 -Wl,-E action.o crc.o daemonize.o data_lump.o data_lump_rpl.o dprint.o dset.o error.o fifo_server.o flags.o forward.o hash_func.o ip_addr.o items.o main.o md5.o md5utils.o modparam.o msg_translator.o pass_fd.o proxy.o qvalue.o re.o receive.o resolve.o route.o route_struct.o script_cb.o socket_info.o sr_module.o stats.o tcp_main.o tcp_read.o timer.o tsend.o udp_server.o unixsock_server.o usr_avp.o mem/f_malloc.o mem/mem.o mem/memtest.o mem/q_malloc.o mem/shm_mem.o mem/vq_malloc.o parser/hf.o parser/msg_parser.o parser/parse_allow.o parser/parse_content.o parser/parse_cseq.o parser/parse_disposition.o parser/parse_diversion.o parser/parse_event.o parser/parse_expires.o parser/parse_fline.o parser/parse_from.o parser/parse_hname2.o parser/parse_hostport.o parser/parse_methods.o parser/parse_nameaddr.o parser/parse_param.o parser/parse_refer_to.o parser/parse_rpid.o parser/parse_rr.o parser/parse_sipifmatch.o parser/parse_to.o parser/parse_uri.o parser/parse_via.o parser/parser_f.o parser/digest/digest.o parser/digest/digest_parser.o parser/digest/param_parser.o parser/contact/contact.o parser/contact/parse_contact.o db/db.o db/db_fifo.o db/db_id.o db/db_pool.o lex.yy.o cfg.tab.o -lfl -ldl -lresolv -o openser items.o(.text+0x389e): In function `xl_get_branch': /export/darilion/openser-cvs/tmp/sip-server/items.c:1123: undefined reference to `init_branch_iterator' items.o(.text+0x38c8):/export/darilion/openser-cvs/tmp/sip-server/items.c:1124: undefined reference to `next_branch' items.o(.text+0x3953): In function `xl_get_branches': /export/darilion/openser-cvs/tmp/sip-server/items.c:1155: undefined reference to `init_branch_iterator' items.o(.text+0x3980):/export/darilion/openser-cvs/tmp/sip-server/items.c:1156: undefined reference to `next_branch' items.o(.text+0x3a7e):/export/darilion/openser-cvs/tmp/sip-server/items.c:1180: undefined reference to `init_branch_iterator' items.o(.text+0x3aab):/export/darilion/openser-cvs/tmp/sip-server/items.c:1181: undefined reference to `next_branch' collect2: ld returned 1 exit status make[2]: *** [openser] Error 1 make[2]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server' make[1]: *** [build-stamp] Error 2 make[1]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server' make: *** [deb] Error 2
Bogdan-Andrei Iancu wrote:
Hi Klaus,
it should be fixed on cvs. let me know if works for you.
regards, bogdan
Klaus Darilion wrote:
Hi Bogdan!
I removed all xlog statements from the branch_route and now it works!
I guess you are right!
thanks klaus
Bogdan-Andrei Iancu wrote:
Hi Klaus,
if I'm not wrong, this time the problem resides in the branch iterator implementation (dset.c). It's a unique static iterator. What happens is a nested usage of the iterator: first it is used to run build branches and run the branch route; secondly, it's used from branch_route by xlog to print all branches and destination set....so...you get a iteration inside another iteration, but using same iterator.... :-/
probably that's the reason for the missing third branch route....please re-try same scenario, but remove the "all branches and destination set " xlog specifiers...let me know if it works....
regards, bogdan
PS: if the iterator is the real cause, I will re-implemet it ;)
Klaus Darilion wrote:
Hi!
In the following scenario, a call is forked to 3 phones. 2 of them are behind the same NAT (same publich IP, different port, one uses STUN, one not).
I xlog all branches,dest-sets... in route[] and then in branch_route.
But the branch route is executed on 2 times, instead of three times (the destination set shows that there are 3 destinations)
Although the destination set is changed in the second branch processing. Is this the intended way?
regards klaus
route[]:
request's first branch: $br=sip:10.10.0.50:15360 request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 request's destination uri: $du= request's uri: $ru=sip:klaus@83.136.33.19:5060 activating t_on_branch(1)
branch_route[1]: first branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:klaus@83.136.33.19:5060, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du= branch_route[1]: request's uri: $ru=sip:klaus@83.136.33.19:5060
branch_route[1]: second branch processing
branch_route[1]: request's first branch: $br=sip:10.10.0.50:15360 branch_route[1]: request's all branches: $bR=sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination set: $ds=Contact: sip:10.10.0.50:15360, sip:10.10.0.50:15360, sip:klaus@83.136.33.3:8718 branch_route[1]: request's destination uri: $du=sip:83.136.33.3:3003 branch_route[1]: request's uri: $ru=sip:10.10.0.50:15360
...no third branch procesing :-(
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Hi Klaus,
there was a file which I missed to commit. Thanks to Juha, it's fixed now.
regards, bogdan
Klaus Darilion wrote:
does not compile anymore:
gcc -Wl,-O2 -Wl,-E action.o crc.o daemonize.o data_lump.o data_lump_rpl.o dprint.o dset.o error.o fifo_server.o flags.o forward.o hash_func.o ip_addr.o items.o main.o md5.o md5utils.o modparam.o msg_translator.o pass_fd.o proxy.o qvalue.o re.o receive.o resolve.o route.o route_struct.o script_cb.o socket_info.o sr_module.o stats.o tcp_main.o tcp_read.o timer.o tsend.o udp_server.o unixsock_server.o usr_avp.o mem/f_malloc.o mem/mem.o mem/memtest.o mem/q_malloc.o mem/shm_mem.o mem/vq_malloc.o parser/hf.o parser/msg_parser.o parser/parse_allow.o parser/parse_content.o parser/parse_cseq.o parser/parse_disposition.o parser/parse_diversion.o parser/parse_event.o parser/parse_expires.o parser/parse_fline.o parser/parse_from.o parser/parse_hname2.o parser/parse_hostport.o parser/parse_methods.o parser/parse_nameaddr.o parser/parse_param.o parser/parse_refer_to.o parser/parse_rpid.o parser/parse_rr.o parser/parse_sipifmatch.o parser/parse_to.o parser/parse_uri.o parser/parse_via.o parser/parser_f.o parser/digest/digest.o parser/digest/digest_parser.o parser/digest/param_parser.o parser/contact/contact.o parser/contact/parse_contact.o db/db.o db/db_fifo.o db/db_id.o db/db_pool.o lex.yy.o cfg.tab.o -lfl -ldl -lresolv -o openser items.o(.text+0x389e): In function `xl_get_branch': /export/darilion/openser-cvs/tmp/sip-server/items.c:1123: undefined reference to `init_branch_iterator' items.o(.text+0x38c8):/export/darilion/openser-cvs/tmp/sip-server/items.c:1124: undefined reference to `next_branch' items.o(.text+0x3953): In function `xl_get_branches': /export/darilion/openser-cvs/tmp/sip-server/items.c:1155: undefined reference to `init_branch_iterator' items.o(.text+0x3980):/export/darilion/openser-cvs/tmp/sip-server/items.c:1156: undefined reference to `next_branch' items.o(.text+0x3a7e):/export/darilion/openser-cvs/tmp/sip-server/items.c:1180: undefined reference to `init_branch_iterator' items.o(.text+0x3aab):/export/darilion/openser-cvs/tmp/sip-server/items.c:1181: undefined reference to `next_branch' collect2: ld returned 1 exit status make[2]: *** [openser] Error 1 make[2]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server' make[1]: *** [build-stamp] Error 2 make[1]: Leaving directory `/export/darilion/openser-cvs/tmp/sip-server' make: *** [deb] Error 2
Bogdan-Andrei Iancu wrote:
Hi Klaus,
it should be fixed on cvs. let me know if works for you.
regards, bogdan