我是Asterisk的新手。希望我的问题是可以实现的。
我的问题:
当SIP客户端A通过我的星号服务器调用sip客户端B时,我想对星号服务器发送给clientB的INVITE消息进行更改。
更多细节:
以下消息是从Asterisk服务器发送到clientB的原始消息,其中“3000”是clientA的userName,“666”是clientA的displayedName(或Zoiper APP中的呼叫者ID)。我想在消息中交换“3000”和“666”。更改.c代码或更改.conf非常棒。 当星号服务器从sipA收到SIP INVITE时,是否有人可以提示在哪里修改SIP INVITE消息到sipB。
INVITE sip:3001@192.168.60.35;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 192.168.60.4:40416;branch=z9hG4bK-524287-1---cfa0bdc915e1bba8;rport
Max-Forwards: 70
Contact: <sip:3000@192.168.60.4:40416;transport=UDP>
To: <sip:3001@192.168.60.35;transport=UDP>
From: "666"<sip:3000@192.168.60.35;transport=UDP>;tag=6a4be72e
Call-ID: DqIzNYN2-TZwiTSB7JdwGQ..
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, SUBSCRIBE
Content-Type: application/sdp
User-Agent: Zoiper rv2.8.40
Allow-Events: presence, kpml, talk
Content-Length: 240
答案 0 :(得分:1)
您应该从拨号方案执行此操作。这是一个简单的变量交换:
Set(TEMP=${CALLERID(name)})
Set(CALLERID(name)=${CALLERID(num)})
Set(CALLERID(num)=${TEMP})
请同时参阅CLI命令文档:core show function CALLERID