Adjunto output de ngrep.
Saludos,
>----Mensaje original----
>De: ibc(a)in.ilimit.es
>Fecha: 15/01/2008 13:23
>Para: <users-es(a)lists.openser.org>
>Asunto: Re: [OpenSER-Users-ES] Problemas Forward de llamadas de
openser a Asterisk
>
>On Tuesday 15 January 2008 16:49:58 andresdb(a)adinet.com.uy wrote:
>> Estimado,
>>
>> Correcto, desde un teléfono con ip publica me registro al ser que
esta
>> en una ip publica, el servidor ser tiene dos tarjetas de red una
para
>> la ip publica y otra para la lan que es donde este el asterisk, no
>> puedo llamar desde ese teléfono al asterisk no escucho el ringing,
si
>> me registro a la ip privada del ser(LAN) puedo llamar al asterisk,
se
>> escuha el ringing y puedo establecer una comunicación.
>
>
>- Limpia el escenario (apaga teléfonos, etc).
>
>- Instala "ngrep" en el OpenSer y ejecuta:
> ~# ngrep -d any -P ' ' -W byline -T -t "" port 5060 or port 5065
>(puedes volcarlo a un archivo tal vez)
>
>- Enciende el teléfono con IP pública (o sea, que se registre).
>
>- Haz la llamada que falla.
>
>- Y pega la salida del comando anterior con todo lo que ha capturado.
>
>
>
>--
>Iñaki Baz Castillo
>ibc(a)in.ilimit.es
>
>_______________________________________________
>Users-es mailing list
>Users-es(a)lists.openser.org
>http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
>
Va la captura,
Jan 15 14:29:24 [32215] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 15 14:29:24 [32215] DBG:tm:t_newtran: transaction on
entrance=0xffffffff
Jan 15 14:29:24 [32215] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 15 14:29:24 [32215] DBG:core:parse_headers: flags=78
Jan 15 14:29:24 [32215] DBG:tm:t_lookup_request: start searching:
hash=45439, isACK=0
Jan 15 14:29:24 [32215] DBG:tm:matching_3261: RFC3261 transaction
matching failed
Jan 15 14:29:24 [32215] DBG:tm:t_lookup_request: no transaction found
Jan 15 14:29:24 [32215] DBG:core:mk_proxy: doing DNS lookup...
Jan 15 14:29:24 [32215] DBG:core:check_via_address: params 190.132.174.
xxx, 190.132.174.xxx, 0
Jan 15 14:29:24 [32215] DBG:tm:set_timer: relative timeout is 500000
Jan 15 14:29:24 [32215] DBG:tm:insert_timer_unsafe: [4]: 0xb614313c
(98200000)
Jan 15 14:29:24 [32215] DBG:tm:set_timer: relative timeout is 30
Jan 15 14:29:24 [32215] DBG:tm:insert_timer_unsafe: [0]: 0xb6143158
(127)
Jan 15 14:29:24 [32215] DBG:tm:t_relay_to: new transaction fwd'ed
Jan 15 14:29:24 [32215] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
Jan 15 14:29:24 [32215] DBG:core:destroy_avp_list: destroying list
(nil)
Jan 15 14:29:24 [32215] DBG:core:receive_msg: cleaning up
Jan 15 14:29:24 [32218] DBG:core:parse_msg: SIP Reply (status):
Jan 15 14:29:24 [32218] DBG:core:parse_msg: version: <SIP/2.0>
Jan 15 14:29:24 [32218] DBG:core:parse_msg: status: <489>
Jan 15 14:29:24 [32218] DBG:core:parse_msg: reason: <Event Package
Not Supported>
Jan 15 14:29:24 [32218] DBG:core:parse_headers: flags=2
Jan 15 14:29:24 [32218] DBG:core:parse_via_param: found param type
232, <branch> = <z9hG4bKf71b.f1369954.0>; state=16
Jan 15 14:29:24 [32218] DBG:core:parse_via: end of header reached,
state=5
Jan 15 14:29:24 [32218] DBG:core:parse_headers: via found, flags=2
Jan 15 14:29:24 [32218] DBG:core:parse_headers: this is the first via
Jan 15 14:29:24 [32218] DBG:core:receive_msg: After parse_msg...
Jan 15 14:29:24 [32218] DBG:core:forward_reply: found module tm,
passing reply to it
Jan 15 14:29:24 [32218] DBG:tm:t_check: start=0xffffffff
Jan 15 14:29:24 [32218] DBG:core:parse_headers: flags=22
Jan 15 14:29:24 [32218] DBG:core:parse_via_param: found param type
232, <branch> = <z9hG4bK-d87543-8d7344018518fb1b-1--d87543->; state=6
Jan 15 14:29:24 [32218] DBG:core:parse_via_param: found param type
235, <rport> = <64438>; state=16
Jan 15 14:29:24 [32218] DBG:core:parse_via: end of header reached,
state=5
Jan 15 14:29:24 [32218] DBG:core:parse_headers: via found, flags=22
Jan 15 14:29:24 [32218] DBG:core:parse_headers: parse_headers: this is
the second via
Jan 15 14:29:24 [32218] DBG:core:parse_to_param: tag=d81f7914
Jan 15 14:29:24 [32218] DBG:core:parse_to: end of header reached,
state=29
Jan 15 14:29:24 [32218] DBG:core:parse_to: display={"pruebas ser desde
adsl"}, ruri={sip:100%40netgate.com@200.40.xxx.xxx}
Jan 15 14:29:24 [32218] DBG:core:get_hdr_field: <To> [77]; uri=[sip:
100%40netgate.com(a)200.40.xxx.xxx]
Jan 15 14:29:24 [32218] DBG:core:get_hdr_field: to body ["pruebas ser
desde adsl"<sip:100%40netgate.com@200.40.xxx.xxx>]
Jan 15 14:29:24 [32218] DBG:core:get_hdr_field: cseq <CSeq>: <1>
<SUBSCRIBE>
Jan 15 14:29:24 [32218] DBG:tm:t_reply_matching: hash 45439 label
1167680287 branch 0
Jan 15 14:29:24 [32218] DBG:tm:t_reply_matching: REF_UNSAFE: after is
1
Jan 15 14:29:24 [32218] DBG:tm:t_reply_matching: reply matched
(T=0xb6142ff0)!
Jan 15 14:29:24 [32218] DBG:tm:t_check: end=0xb6142ff0
Jan 15 14:29:24 [32218] DBG:tm:reply_received: org. status uas=0, uac
[0]=0 local=0 is_invite=0)
Jan 15 14:29:24 [32218] DBG:tm:t_should_relay_response: T_code=0,
new_code=489
Jan 15 14:29:24 [32218] DBG:tm:t_pick_branch: picked branch 0, code
489
Jan 15 14:29:24 [32218] DBG:tm:is_3263_failure: dns-failover test:
branch=0, last_recv=489, flags=2
Jan 15 14:29:24 [32218] DBG:tm:relay_reply: branch=0, save=0, relay=0
Jan 15 14:29:24 [32218] DBG:core:build_res_buf_from_sip_res: old
size: 527, new size: 464
Jan 15 14:29:24 [32218] DBG:core:build_res_buf_from_sip_res: copied
size: orig:104, new: 41, rest: 423 msg=
SIP/2.0 489 Event Package Not Supported
Via: SIP/2.0/UDP 190.132.174.235:64438;branch=z9hG4bK-d87543-
8d7344018518fb1b-1--d87543-;rport=64438
To: "pruebas ser desde adsl"<sip:100%40netgate.com@200.40.xxx.xxx>;
tag=d81f7914
From: "pruebas ser desde adsl"<sip:100%40netgate.com@200.40.xxx.xxx>;
tag=3363de79
Call-ID: ac388b1869603b1bNDdmMWE3Mjk4MTgxZGY3N2I1ODJhNTQwZTE2OWJkMTU.
CSeq: 1 SUBSCRIBE
User-Agent: X-Lite release 1003l stamp 30942
Content-Length: 0
Jan 15 14:29:24 [32218] DBG:core:_shm_resize: resize(0) called
Jan 15 14:29:24 [32218] DBG:tm:insert_timer_unsafe: [2]: 0xb6143038
(102)
Jan 15 14:29:24 [32218] DBG:tm:relay_reply: sent buf=0x8185340: SIP/2.
0 4..., shmem=0xb6144f18: SIP/2.0 4
Jan 15 14:29:24 [32218] DBG:tm:cleanup_uac_timers: RETR/FR timers
reset
Jan 15 14:29:24 [32218] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
Jan 15 14:29:24 [32218] DBG:core:destroy_avp_list: destroying list
(nil)
Jan 15 14:29:24 [32218] DBG:core:receive_msg: cleaning up
Jan 15 14:29:25 [32219] DBG:tm:utimer_routine: timer routine:4,
tl=0xb614313c next=(nil), timeout=98200000
Jan 15 14:29:28 [32219] DBG:tm:timer_routine: timer routine:2,
tl=0xb6143038 next=(nil), timeout=102
Jan 15 14:29:28 [32219] DBG:tm:wait_handler: removing 0xb6142ff0 from
table
Jan 15 14:29:28 [32219] DBG:tm:delete_cell: delete transaction
0xb6142ff0
Jan 15 14:29:28 [32219] DBG:tm:wait_handler: done
Jan 15 14:29:41 [32216] DBG:core:parse_msg: SIP Request:
Jan 15 14:29:41 [32216] DBG:core:parse_msg: method: <INVITE>
Jan 15 14:29:41 [32216] DBG:core:parse_msg: uri: <sip:751@200.40.
xxx.xxx>
Jan 15 14:29:41 [32216] DBG:core:parse_msg: version: <SIP/2.0>
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=2
Jan 15 14:29:41 [32216] DBG:core:parse_via_param: found param type
232, <branch> = <z9hG4bK-d87543-40390549c060936b-1--d87543->; state=6
Jan 15 14:29:41 [32216] DBG:core:parse_via_param: found param type
235, <rport> = <n/a>; state=17
Jan 15 14:29:41 [32216] DBG:core:parse_via: end of header reached,
state=5
Jan 15 14:29:41 [32216] DBG:core:parse_headers: via found, flags=2
Jan 15 14:29:41 [32216] DBG:core:parse_headers: this is the first via
Jan 15 14:29:41 [32216] DBG:core:receive_msg: After parse_msg...
Jan 15 14:29:41 [32216] DBG:core:receive_msg: preparing to run routing
scripts...
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=100
Jan 15 14:29:41 [32216] DBG:maxfwd:is_maxfwd_present: value = 70
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=10
Jan 15 14:29:41 [32216] DBG:core:parse_to: end of header reached,
state=10
Jan 15 14:29:41 [32216] DBG:core:parse_to: display={"751"}, ruri={sip:
751(a)200.40.xxx.xxx}
Jan 15 14:29:41 [32216] DBG:core:get_hdr_field: <To> [31]; uri=[sip:
751(a)200.40.xxx.xxx]
Jan 15 14:29:41 [32216] DBG:core:get_hdr_field: to body ["751"<sip:
751(a)200.40.xxx.xxx>
]
Jan 15 14:29:41 [32216] DBG:core:parse_to_param: tag=747fa53e
Jan 15 14:29:41 [32216] DBG:core:parse_to: end of header reached,
state=29
Jan 15 14:29:41 [32216] DBG:core:parse_to: display={"pruebas ser desde
adsl"}, ruri={sip:100%40netgate.com@200.40.xxx.xxx}
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=200
Jan 15 14:29:41 [32216] DBG:core:get_hdr_field: cseq <CSeq>: <1>
<INVITE>
Jan 15 14:29:41 [32216] DBG:core:get_hdr_field: content_length=438
Jan 15 14:29:41 [32216] DBG:core:get_hdr_field: found end of header
Jan 15 14:29:41 [32216] DBG:rr:find_first_route: No Route headers
found
Jan 15 14:29:41 [32216] DBG:rr:loose_route: There is no Route HF
Jan 15 14:29:41 [32216] DBG:core:grep_sock_info: checking if host==us:
14==13 && [200.40.xxx.xxx] == [192.168.1.200]
Jan 15 14:29:41 [32216] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:29:41 [32216] DBG:core:grep_sock_info: checking if host==us:
14==14 && [200.40.xxx.xxx] == [200.40.xxx.xxx]
Jan 15 14:29:41 [32216] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:29:41 [32216] DBG:tm:t_newtran: transaction on
entrance=0xffffffff
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=78
Jan 15 14:29:41 [32216] DBG:tm:t_lookup_request: start searching:
hash=13046, isACK=0
Jan 15 14:29:41 [32216] DBG:tm:matching_3261: RFC3261 transaction
matching failed
Jan 15 14:29:41 [32216] DBG:tm:t_lookup_request: no transaction found
Jan 15 14:29:41 [32216] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 15 14:29:41 [32216] DBG:core:check_via_address: params 190.132.174.
xxx, 190.132.174.xxx, 0
Jan 15 14:29:41 [32216] DBG:core:_shm_resize: resize(0) called
Jan 15 14:29:41 [32216] DBG:tm:_reply_light: reply sent out.
buf=0x8185858: SIP/2.0 1..., shmem=0xb6144bc8: SIP/2.0 1
Jan 15 14:29:41 [32216] DBG:tm:_reply_light: finished
Jan 15 14:29:41 [32216] DBG:core:mk_proxy: doing DNS lookup...
Jan 15 14:29:41 [32216] DBG:core:check_via_address: params 190.132.174.
xxx, 190.132.174.xxx, 0
Jan 15 14:29:41 [32216] DBG:tm:set_timer: relative timeout is 500000
Jan 15 14:29:41 [32216] DBG:tm:insert_timer_unsafe: [4]: 0xb614313c
(115600000)
Jan 15 14:29:41 [32216] DBG:tm:set_timer: relative timeout is 30
Jan 15 14:29:41 [32216] DBG:tm:insert_timer_unsafe: [0]: 0xb6143158
(145)
Jan 15 14:29:41 [32216] DBG:tm:t_relay_to: new transaction fwd'ed
Jan 15 14:29:41 [32216] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
Jan 15 14:29:41 [32216] DBG:core:destroy_avp_list: destroying list
(nil)
Jan 15 14:29:41 [32216] DBG:core:receive_msg: cleaning up
Jan 15 14:29:42 [32219] DBG:tm:utimer_routine: timer routine:4,
tl=0xb614313c next=(nil), timeout=115600000
Jan 15 14:29:42 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:42 [32219] DBG:tm:set_timer: relative timeout is 1000000
Jan 15 14:29:42 [32219] DBG:tm:insert_timer_unsafe: [5]: 0xb614313c
(116600000)
Jan 15 14:29:42 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:29:43 [32219] DBG:tm:utimer_routine: timer routine:5,
tl=0xb614313c next=(nil), timeout=116600000
Jan 15 14:29:43 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:43 [32219] DBG:tm:set_timer: relative timeout is 2000000
Jan 15 14:29:43 [32219] DBG:tm:insert_timer_unsafe: [6]: 0xb614313c
(118600000)
Jan 15 14:29:43 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:29:45 [32219] DBG:tm:utimer_routine: timer routine:6,
tl=0xb614313c next=(nil), timeout=118600000
Jan 15 14:29:45 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:45 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:29:45 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(122600000)
Jan 15 14:29:45 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:29:46 [32219] DBG:dbtext:dbt_db_get_table: cache or mtime
succeeded
Jan 15 14:29:46 [32219] DBG:dbtext:dbt_insert: done!
Jan 15 14:29:49 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=122600000
Jan 15 14:29:49 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:49 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:29:49 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(126600000)
Jan 15 14:29:49 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:29:53 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=126600000
Jan 15 14:29:53 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:53 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:29:53 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(130600000)
Jan 15 14:29:53 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:29:54 [32215] DBG:core:udp_rcv_loop: probing packet received
from 190.132.174.xxx 46843
Jan 15 14:29:57 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=130600000
Jan 15 14:29:57 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:29:57 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:29:57 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(134600000)
Jan 15 14:29:57 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:30:01 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=134600000
Jan 15 14:30:01 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:30:01 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:30:01 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(138600000)
Jan 15 14:30:01 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:30:05 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=138600000
Jan 15 14:30:05 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:30:05 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:30:05 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(142600000)
Jan 15 14:30:05 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:30:09 [32219] DBG:tm:utimer_routine: timer routine:7,
tl=0xb614313c next=(nil), timeout=142600000
Jan 15 14:30:09 [32219] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0xb6142ff0, INVITE si ...
)
Jan 15 14:30:09 [32219] DBG:tm:set_timer: relative timeout is 4000000
Jan 15 14:30:09 [32219] DBG:tm:insert_timer_unsafe: [7]: 0xb614313c
(146600000)
Jan 15 14:30:09 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:30:11 [32219] DBG:tm:timer_routine: timer routine:0,
tl=0xb6143158 next=(nil), timeout=145
Jan 15 14:30:11 [32219] DBG:tm:final_response_handler: stop retr. and
send CANCEL (0xb6142ff0)
Jan 15 14:30:11 [32219] DBG:tm:t_should_relay_response: T_code=100,
new_code=408
Jan 15 14:30:11 [32219] DBG:tm:t_pick_branch: picked branch 0, code
408
Jan 15 14:30:11 [32219] DBG:tm:is_3263_failure: dns-failover test:
branch=0, last_recv=408, flags=1
Jan 15 14:30:11 [32219] DBG:tm:t_should_relay_response: trying DNS-
based failover
Jan 15 14:30:11 [32219] DBG:tm:relay_reply: branch=0, save=0, relay=0
Jan 15 14:30:11 [32219] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 15 14:30:11 [32219] DBG:core:check_via_address: params 190.132.174.
xxx, 190.132.174.xxx, 0
Jan 15 14:30:11 [32219] DBG:tm:set_timer: relative timeout is 500000
Jan 15 14:30:11 [32219] DBG:tm:insert_timer_unsafe: [4]: 0xb61430b8
(145500000)
Jan 15 14:30:11 [32219] DBG:tm:set_timer: relative timeout is 30
Jan 15 14:30:11 [32219] DBG:tm:insert_timer_unsafe: [0]: 0xb61430d4
(175)
Jan 15 14:30:11 [32219] DBG:tm:relay_reply: sent buf=0x81801f0: SIP/2.
0 4..., shmem=0xb6144bc8: SIP/2.0 4
Jan 15 14:30:11 [32219] DBG:tm:final_response_handler: done
Jan 15 14:30:12 [32219] DBG:tm:utimer_routine: timer routine:4,
tl=0xb61430b8 next=(nil), timeout=145500000
Jan 15 14:30:12 [32219] DBG:tm:retransmission_handler:
retransmission_handler : reply resending (t=0xb6142ff0, SIP/2.0 4 ... )
Jan 15 14:30:12 [32219] DBG:tm:t_retransmit_reply: buf=0x3c4860: SIP/2.
0 4..., shmem=0xb6144bc8: SIP/2.0 4
Jan 15 14:30:12 [32219] DBG:tm:set_timer: relative timeout is 1000000
Jan 15 14:30:12 [32219] DBG:tm:insert_timer_unsafe: [5]: 0xb61430b8
(146500000)
Jan 15 14:30:12 [32219] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 15 14:30:12 [32217] DBG:core:parse_msg: SIP Request:
Jan 15 14:30:12 [32217] DBG:core:parse_msg: method: <ACK>
Jan 15 14:30:12 [32217] DBG:core:parse_msg: uri: <sip:751@200.40.
xxx.xxx>
Jan 15 14:30:12 [32217] DBG:core:parse_msg: version: <SIP/2.0>
Jan 15 14:30:12 [32217] DBG:core:parse_headers: flags=2
Jan 15 14:30:12 [32217] DBG:core:parse_via_param: found param type
232, <branch> = <z9hG4bK-d87543-40390549c060936b-1--d87543->; state=6
Jan 15 14:30:12 [32217] DBG:core:parse_via_param: found param type
235, <rport> = <n/a>; state=17
Jan 15 14:30:12 [32217] DBG:core:parse_via: end of header reached,
state=5
Jan 15 14:30:12 [32217] DBG:core:parse_headers: via found, flags=2
Jan 15 14:30:12 [32217] DBG:core:parse_headers: this is the first via
Jan 15 14:30:12 [32217] DBG:core:receive_msg: After parse_msg...
Jan 15 14:30:12 [32217] DBG:core:receive_msg: preparing to run routing
scripts...
Jan 15 14:30:12 [32217] DBG:sl:sl_filter_ACK: to late to be a local
ACK!
Jan 15 14:30:12 [32217] DBG:core:parse_headers: flags=100
Jan 15 14:30:12 [32217] DBG:core:parse_to_param:
tag=a675395d39bf06a14f949f34d60ba9bb-be39
Jan 15 14:30:12 [32217] DBG:core:parse_to: end of header reached,
state=29
Jan 15 14:30:12 [32217] DBG:core:parse_to: display={"751"}, ruri={sip:
751(a)200.40.xxx.xxx}
Jan 15 14:30:12 [32217] DBG:core:get_hdr_field: <To> [73]; uri=[sip:
751(a)200.40.xxx.xxx]
Jan 15 14:30:12 [32217] DBG:core:get_hdr_field: to body ["751"<sip:
751(a)200.40.xxx.xxx>]
Jan 15 14:30:12 [32217] DBG:core:get_hdr_field: cseq <CSeq>: <1> <ACK>
Jan 15 14:30:12 [32217] DBG:core:get_hdr_field: content_length=0
Jan 15 14:30:12 [32217] DBG:core:get_hdr_field: found end of header
Jan 15 14:30:12 [32217] DBG:maxfwd:is_maxfwd_present: max_forwards
header not found!
Jan 15 14:30:12 [32217] DBG:core:parse_to_param: tag=747fa53e
Jan 15 14:30:12 [32217] DBG:core:parse_to: end of header reached,
state=29
Jan 15 14:30:12 [32217] DBG:core:parse_to: display={"pruebas ser desde
adsl"}, ruri={sip:100%40netgate.com@200.40.xxx.xxx}
Jan 15 14:30:12 [32217] DBG:core:parse_headers: flags=200
Jan 15 14:30:12 [32217] DBG:rr:find_first_route: No Route headers
found
Jan 15 14:30:12 [32217] DBG:rr:loose_route: There is no Route HF
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==13 && [200.40.xxx.xxx] == [192.168.1.200]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==14 && [200.40.xxx.xxx] == [200.40.xxx.xxx]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==13 && [200.40.xxx.xxx] == [192.168.1.200]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==14 && [200.40.xxx.xxx] == [200.40.xxx.xxx]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:registrar:lookup: '751' Not found in
usrloc
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==13 && [200.40.xxx.xxx] == [192.168.1.200]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if host==us:
14==14 && [200.40.xxx.xxx] == [200.40.xxx.xxx]
Jan 15 14:30:12 [32217] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
Jan 15 14:30:12 [32217] DBG:registrar:lookup: '751' Not found in
usrloc
Jan 15 14:30:12 [32217] DBG:core:destroy_avp_list: destroying list
(nil)
Jan 15 14:30:12 [32217] DBG:core:receive_msg: cleaning up
Jan 15 14:30:12 [32215] DBG:core:parse_msg: SIP Request:
Jan 15 14:30:12 [32215] DBG:core:parse_msg: method: <ACK>
Jan 15 14:30:12 [32215] DBG:core:parse_msg: uri: <sip:751@200.40.
xxx.xxx>
Jan 15 14:30:12 [32215] DBG:core:parse_msg: version: <SIP/2.0>
Jan 15 14:30:12 [32215] DBG:core:parse_headers: flags=2
Jan 15 14:30:12 [32215] DBG:core:parse_via_param: found param type
232, <branch> = <z9hG4bK-d87543-40390549c060936b-1--d87543->; state=6
Jan 15 14:30:12 [32215] DBG:core:parse_via_param: found param type
235, <rport> = <n/a>; state=17
Jan 15 14:30:12 [32215] DBG:core:parse_via: end of header reached,
state=5
Jan 15 14:30:12 [32215] DBG:core:parse_headers: via found, flags=2
Jan 15 14:30:12 [32215] DBG:core:parse_headers: this is the first via
Jan 15 14:30:12 [32215] DBG:core:receive_msg: After parse_msg...
Jan 15 14:30:12 [32215] DBG:core:receive_msg: preparing to run routing
scripts...
Jan 15 14:30:12 [32215] DBG:sl:sl_filter_ACK: to late to be a local
ACK!
Jan 15 14:30:12 [32215] DBG:core:parse_headers: flags=100
>----Mensaje original----
>De: ggb(a)tid.es
>Fecha: 06/12/2007 11:03
>Para: "Lista de usuarios de OpenSER"<users-es(a)lists.openser.org>
>Asunto: Re: [OpenSER-Users-ES] Problemas Forward de llamadas de
openser a Asterisk
>
>Puedes mandar una captura del wireshark en tu SER a ver que pasa con
el
>INVITE cuando lo mandas desde Internet?
>
>G.
>
>On Tue, 2008-01-15 at 05:49 -0800, Andresdb wrote:
>> Estimado amigos,
>>
>> Tengo el siguiente inconveniente y la situación es la siguiente:
>> INTERNET----<ippublica SER x.x.x.x:5060>----ServerSER----<iplan SER
>> 192.168.1.200:5060>--LAN--<iplan Asterisk 192.168.1.201:5060>
>> Lo que queremos hacer es utilizar SER como un proxy para no exponer
asterisk
>> a una ip publica.
>> Si me registro contra el openser con la ip de lan el forward de las
llamadas
>> al Asterisk se hace correctamente, pero si intento registrarme
contra la ip
>> publica me registro al ser pero no puedo hacer llamadas, el forward
a la ip
>> de astrerisk no se hace, te detallo la configuración del cfg de
ser, les
>> agradezco mucho en lo que me puedan ayudar.
>>
>> openser.cfg
>> # ----------- global configuration parameters
------------------------
>>
>> debug=7 # debug level (cmd line: -dddddddddd)
>> fork=yes
>> log_stderror=yes # (cmd line: -E)
>>
>> check_via=no # (cmd. line: -v)
>> dns=no # (cmd. line: -r)
>> rev_dns=no # (cmd. line: -R)
>> children=4
>>
>> listen=192.168.1.200
>> listen=200.40.119.215
>> port=5060
>>
>> # ------------------ module loading
----------------------------------
>>
>> # use dbtext database
>> mpath="/usr/local/lib/openser/modules/"
>> loadmodule "dbtext.so"
>> loadmodule "sl.so"
>> loadmodule "tm.so"
>> loadmodule "rr.so"
>> loadmodule "maxfwd.so"
>> loadmodule "usrloc.so"
>> loadmodule "registrar.so"
>> loadmodule "textops.so"
>> loadmodule "mi_fifo.so"
>> #loadmodule "mediaproxy.so"
>> #loadmodule "nathelper.so"
>> #loadmodule "acc.so"
>> #loadmodule "exec.so"
>> #loadmodule "xlog.so"
>>
>> # modules for digest authentication
>> loadmodule "auth.so"
>> loadmodule "auth_db.so"
>>
>> # ----------------- setting module-specific parameters
---------------
>>
>> # -- mi_fifo params --
>>
>> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
>>
>> # -- nathelper
>> #modparam("nathelper", "rtpproxy_disable", 1)
>> #modparam("nathelper", "natping_interval", 30)
>> #modparam("nathelper", "sipping_from", "sip:ping@192.168.0.7")
>>
>> # -- usrloc params --
>>
>> # use dbtext database for persistent storage
>> modparam("usrloc", "db_mode", 2)
>> modparam("usrloc|auth_db", "db_url",
>> "dbtext:///usr/local/etc/openser/dbtext")
>>
>> # -- auth params --
>> #
>> modparam("auth_db", "calculate_ha1", 1)
>> modparam("auth_db", "password_column", "password")
>> modparam("auth_db", "user_column", "username")
>> modparam("auth_db", "domain_column", "domain")
>>
>> # -- rr params --
>> # add value to ;lr param to make some broken UAs happy
>> modparam("rr", "enable_full_lr", 1)
>>
>> # ------------------------- request routing logic
-------------------
>>
>> # main routing logic
>>
>> 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");
>> exit;
>> };
>> if (msg:len >= max_len ) {
>> sl_send_reply("513", "Message too big");
>> exit;
>> };
>>
>> # 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
>> if (!method=="REGISTER") record_route();
>>
>> # subsequent messages withing a dialog should take the
>> # path determined by record-routing
>> if (loose_route()) {
>> # mark routing logic in request
>> append_hf("P-hint: rr-enforced\r\n");
>> route(1);
>> exit;
>> };
>>
>> if (!uri==myself) {
>> # mark routing logic in request
>> append_hf("P-hint: outbound\r\n");
>> route(1);
>> exit;
>> };
>> if (is_method("INVITE")) {
>> rewritehostport("192.168.1.201:5060");
>> t_relay();
>> exit;
>> }
>> # if the request is for other domain use UsrLoc
>> # (in case, it does not work, use the following command
>> # with proper names and addresses in it)
>> if (uri==myself) {
>> if (method=="REGISTER") {
>> # digest authentication
>> if (!www_authorize("*", "subscriber")) {
>> www_challenge("*", "0");
>> exit;
>> };
>>
>> save("location");
>> exit;
>> };
>>
>> lookup("aliases");
>> if (!uri==myself) {
>> append_hf("P-hint: outbound alias\r\n");
>> route(1);
>> exit;
>> };
>>
>> # native SIP destinations are handled using our USRLOC DB
>> if (!lookup("location")) {
>> sl_send_reply("404", "Not Found");
>> exit;
>> };
>> };
>> append_hf("P-hint: usrloc applied\r\n");
>> route(1);
>> }
>>
>> route[1]
>> {
>> # send it out now; use stateful forwarding as it works reliably
>> # even for UDP2TCP
>> if (!t_relay()) {
>> sl_reply_error();
>> };
>> }
>>
>
>
>
>_______________________________________________
>Users-es mailing list
>Users-es(a)lists.openser.org
>http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
>
Estimado,
Correcto, desde un teléfono con ip publica me registro al ser que esta
en una ip publica, el servidor ser tiene dos tarjetas de red una para
la ip publica y otra para la lan que es donde este el asterisk, no
puedo llamar desde ese teléfono al asterisk no escucho el ringing, si
me registro a la ip privada del ser(LAN) puedo llamar al asterisk, se
escuha el ringing y puedo establecer una comunicación.
Saludos,
>----Mensaje original----
>De: ibc(a)in.ilimit.es
>Fecha: 15/01/2008 10:57
>Para: <users-es(a)lists.openser.org>
>Asunto: Re: [OpenSER-Users-ES] Problemas Forward de llamadas de
openser a Asterisk
>
>On Tuesday 15 January 2008 14:49:04 Andresdb wrote:
>> Si me registro contra el openser con la ip de lan el forward de las
>> llamadas al Asterisk se hace correctamente, pero si intento
registrarme
>> contra la ip publica me registro al ser pero no puedo hacer
llamadas, el
>> forward a la ip de astrerisk no se hace
>
>A ver si he entendido:
>
>Si te registras en Openser desde un tfno en una IP pública externa,
entonces
>no puedes llamar desde ese tfno al Asterisk, ¿es eso?
>
>En caso afirmativo:
>
>- Pon una extensión en Asterisk tal que así:
> exten => test,1,Ringing
> exten => test,n,Wait(4)
> exten => test,n,Answer
> exten => test,n,Echo
>
>- Llama desde el tfno externo a esa extensión.
>
>¿Escuchas el ringing en el tfno?
>
>
>--
>Iñaki Baz Castillo
>ibc(a)in.ilimit.es
>
>_______________________________________________
>Users-es mailing list
>Users-es(a)lists.openser.org
>http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
>
Estimado amigos,
Tengo el siguiente inconveniente y la situación es la siguiente:
INTERNET----<ippublica SER x.x.x.x:5060>----ServerSER----<iplan SER
192.168.1.200:5060>--LAN--<iplan Asterisk 192.168.1.201:5060>
Lo que queremos hacer es utilizar SER como un proxy para no exponer asterisk
a una ip publica.
Si me registro contra el openser con la ip de lan el forward de las llamadas
al Asterisk se hace correctamente, pero si intento registrarme contra la ip
publica me registro al ser pero no puedo hacer llamadas, el forward a la ip
de astrerisk no se hace, te detallo la configuración del cfg de ser, les
agradezco mucho en lo que me puedan ayudar.
openser.cfg
# ----------- global configuration parameters ------------------------
debug=7 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (cmd line: -E)
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
children=4
listen=192.168.1.200
listen=200.40.119.215
port=5060
# ------------------ module loading ----------------------------------
# use dbtext database
mpath="/usr/local/lib/openser/modules/"
loadmodule "dbtext.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
#loadmodule "mediaproxy.so"
#loadmodule "nathelper.so"
#loadmodule "acc.so"
#loadmodule "exec.so"
#loadmodule "xlog.so"
# modules for digest authentication
loadmodule "auth.so"
loadmodule "auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- mi_fifo params --
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
# -- nathelper
#modparam("nathelper", "rtpproxy_disable", 1)
#modparam("nathelper", "natping_interval", 30)
#modparam("nathelper", "sipping_from", "sip:ping@192.168.0.7")
# -- usrloc params --
# use dbtext database for persistent storage
modparam("usrloc", "db_mode", 2)
modparam("usrloc|auth_db", "db_url",
"dbtext:///usr/local/etc/openser/dbtext")
# -- auth params --
#
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "user_column", "username")
modparam("auth_db", "domain_column", "domain")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# ------------------------- request routing logic -------------------
# main routing logic
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");
exit;
};
if (msg:len >= max_len ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
exit;
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
exit;
};
if (is_method("INVITE")) {
rewritehostport("192.168.1.201:5060");
t_relay();
exit;
}
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# digest authentication
if (!www_authorize("*", "subscriber")) {
www_challenge("*", "0");
exit;
};
save("location");
exit;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
exit;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
--
View this message in context: http://www.nabble.com/Problemas-Forward-de-llamadas-de-openser-a-Asterisk-t…
Sent from the OpenSER Users - ES mailing list archive at Nabble.com.
Chicos,
Como es normal, no quiero que nadie llame si estar registrado...
tengo lo siguiente en mi conf:
if (uri==myself) {
if (method=="REGISTER") {
if (!www_authorize("sip.midom.com", "subscriber")) {
www_challenge("sip.midom.com", "0");
exit;
};
if (isflagset(5)) {
setbflag(6);
# if you want OPTIONS natpings uncomment next
# setflag(7);
};
save("location");
exit;
};
if (method=="INVITE") {
if (!proxy_authorize("sip.midom.com","subscriber"))
{
proxy_challenge("sip.midom..com","0");
exit;
}else{
if($si=="GW1"||$si=="GW2"){
xlog("L_NOTICE", "\n************** ALLOWING
INCOMING CALL AS IT COMES FROM $si ************\n");
}
}
if (uri=~"^sip:001"){
route(4);
}
.
.
.
pero ahora tengo problemas de DECLINED con muchos clientes cuando hacen
llamadas... qué hay de malo arriba??
Un saludo
David
Hola, supongamos que un cliente_A de un proveedor SIP llama a un número PSTN
ajeno al proveedor. Entonces el proveedor le añade alguna cabecera (RPID y/o
PAI) y la manda al gateway PSTN, que acepta dicha cabecera y la muestra como
callerid.
Pero ahora supongamos que el cliente_A llama a un número PSTN que se
corresponde con otro cliente_B del mismo proveedor. Es decir, la llamada no
sale del proveedor.
Ahora bien, si no tocamos nada raro, el INVITE llegará finalmente a un
teléfono SIP que mostrará como callerid el "From" original, cuando era de
esperar (por los usuarios) que el callerid fuese el número PSTN asociado al
cliente_A.
En este caso de nada vale la cabecera PAI o RPID puesto que los teléfonos SIP
generalmente muestran el From.
En este caso sólo se me ocurre alterar el From, bien a nivel de proxy o al
pasar la llamada por algún B2BUA del sistema. ¿Es "legítimo" hacerlo en este
caso? ¿qué otra alternativa nos queda sino?
PD: Otro escenario similar sería el de una llamada entre proveedores SIP con
acuerdos de peering. ¿Sería lógico requerir de una cabecera "RPID" o "PAI" en
el acuerdo y modificar el From con dicha cabecera antes de entregar la
llamada a nuestros usuarios?
En fin, la PSTN siempre poniendo trabas... incluso cuando la esquivas XD
Gracias por cualquier aclaración.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
Hola, si llega un INVITE con la cabecera:
Call-Info:;answer-after=0
algunos UAS descolgarán automáticamente la llamada.
Pues hombre, está bien pero representa a todas luces un posible problema de
seguridad y privacidad (¿¿espionaje?? XD).
Tal vez el proxy sólo debería permitirse este tipo de cabeceras en ciertas
condiciones (llamada desde el B2BUA y cosas así). De hecho así lo prevee el
RFC 3261 respecto de las cabeceras Call-Info y Alert-Info.
El caso es que en Asterisk éste problema no existe puesto que del INVITE que
le llega al que Asterisk genera no se parece ni el "From" (y no es coña).
Pero sé que otros B2BUA actúan de manera más transparente replicando las
cabeceras desconocidas.
En este último caso me pregunto si existe algún listado de cabeceras o
parámetros que deba vigilar a parte de los mencionados. Se me ocurren:
- Call-Info
- Alert-Info
- RPID
- PAI
¿Alguno más?
Gracias.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es
Hola, algo que fastidia a todo el mundo es el tema de que te cobren una
llamada nada más salir el buzón de voz. Lo lógico y deseable (al margen de la
actitud avariciosa de las grandes operadoras) es que al llamar a un número y
salir el buzón de voz no se cobre la llamada y se ofrezca la posibilidad de
dejar un mensaje pulsando algún dígito.
El impedimento técnico que veo es que parece ser no se permite el envío de
DTMF durante el EarlyMedia. Pero no encuentro documentación sobre ello.
El caso es que durante el EarlyMedia el audio es bidireccional, o sea, el SDP
del "183 Session Progress" dice:
a=sendrecv
(de hecho esto lo he verificado también a nivel de gateway PSTN: una llamada
desde la PSTN a un gateway y éste la dirige a un SIP UAS que responde con
183, y el gateway envía y recibe audio desde el UAS).
A todo esto una duda que tengo es precisamente esto de poder enviar y recibir
audio durante un EarlyMedia, ¿se puede o no se puede? ¿se hace?
Por otra parte, mi Twinkle no me permite enviar DTMF durante el EarlyMedia,
pero vamos, que ni lo intenta por lo que no sé qué pasaría si sí me dejase. Y
por las pruebas que he hecho llamando desde la PSTN (fijo y móvil) y
respondiendo con un EarlyMedia, tampoco parece que se permita el envío de
DTMF.
En fin, que la única opción honesta que he encontrado es la de reproducir el
mensaje del buzón en EarlyMedia, y sólo tras el mensaje responder la llamada
para que el llamante deje su mensaje (y sólo en ese caso provocar que tenga
que pagar su llamada). Con lo fácil que es... lo cab***as que son las
compañías.
Bueno, sin más, que no sé exactamente cuál es mi pregunta pero tal vez alguien
me ayude a definirla XD
Saludos.
--
Iñaki Baz Castillo
Hola a tod@s.
Alguien sabe como modificar el cuerpo de los replys? Para enviar un
response en modo stateless se que se emplea sl_send_reply, pero solo
toma como argumentos el codigo de error y la causa. Sabe alguien si se
puede añadir un body a la respuesta?
Lo que necesito es devolver mensajes 200 OK que porteen un SDP elegido
por mi en el body. Se puede hacer esto con algun modulo disponible o
habria que toquetear el codigo del modulo SL?
Muchas gracias a todos!