我的服务器上有两个 IP 地址位于同一物理接口上:
eth0 10.10.10.11
eth0:0 10.10.10.12
Client IP address: 20.30.40.99
问题是,当扩展(在另一个子网中(尝试注册时,服务器通过 IP 10.10.10.11 接收请求,但它尝试通过 IP 10.10.10.12 响应(根据我对日志的解释(,因此扩展不会注册。
这是日志:
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: = Looking for Call ID: ODU1N2VlNDlkYjQ2NzJkNTU1NTI0ZDc4MWFjOGFhY2I. (Checking From) --From tag d979d256 --To-tag
[Apr 3 08:10:19] DEBUG[1758] acl.c: For destination '20.30.40.99', our source address is '10.10.10.12'.
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: Setting SIP_TRANSPORT_UDP with address 10.10.10.12:5060
[Apr 3 08:10:19] DEBUG[1758] netsock2.c: Splitting '20.30.40.99:52607' into...
[Apr 3 08:10:19] DEBUG[1758] netsock2.c: ...host '20.30.40.99' and port '52607'.
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: Allocating new SIP dialog for ODU1N2VlNDlkYjQ2NzJkNTU1NTI0ZDc4MWFjOGFhY2I. - PUBLISH (No RTP)
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: **** Received PUBLISH (15) - Command in SIP PUBLISH
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: Trying to put 'SIP/2.0 489' onto UDP socket destined for 20.30.40.99:52607
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: SIP message could not be handled, bad request: ODU1N2VlNDlkYjQ2NzJkNTU1NTI0ZDc4MWFjOGFhY2I.
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: Destroying SIP dialog ODU1N2VlNDlkYjQ2NzJkNTU1NTI0ZDc4MWFjOGFhY2I.
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: = Looking for Call ID: Y2M3MmEyMjU2YTkyYzQxODlhNjI5N2Y1Y2NiMjkyMjA. (Checking From) --From tag 1262b86c --To-tag
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: **** Received REGISTER (2) - Command in SIP REGISTER
[Apr 3 08:10:19] DEBUG[1758] chan_sip.c: Ignoring SIP message because of retransmit (REGISTER Seqno 2491, ours 2491)
[Apr 3 08:10:19] DEBUG[1758] netsock2.c: Splitting '20.30.40.99:52607' into...
[Apr 3 08:10:19] DEBUG[1758] netsock2.c: ...host '20.30.40.99' and port '52607'.
如何使星号通过 10.10.10.11 (eth0( IP 而不是 10.10.10.12 (eth0:0( 响应?
Chan sip 将选择第一个可用的地址。
你可以做
1(移至PJSIP并使用不同的运输路段
2(启动两个星号,一个在其他IP上,做互联。
3(如果你只需要在一个ip上工作,使用bind=,之后使用externip=指令。