如何配置Yate实现SIP经M3UA承载ISUP再转回SIP的呼叫路由
Yate配置:实现SIP→M3UA/ISUP→SIP的跨节点呼叫路由
呼叫拓扑:
[sip phone A] -- SIP --> [Yate A] -- ISUP over M3UA --> [Yate B] -- SIP --> [sip phone B]
以下是针对Yate A、Yate B的分节点配置修改指南,覆盖你提到的核心配置文件及必要补充:
一、Yate A 配置(SIP转ISUP over M3UA)
1. sigtransport.conf(SCTP传输层)
替换占位符IP,启用M3UA所需的端点模式:
[sctp-link] type=sctp stream=false local=YATE_A_IP:5050 # 替换为Yate A实际IP,如172.16.100.10:5050 remote=YATE_B_IP:5050 # 替换为Yate B实际IP,如172.16.100.20:5050 endpoint=true # 必须开启,M3UA依赖端点关联建立连接
2. ysigchan.conf(SS7/ISUP通道)
修正路由器配置,确保点码匹配Yate B:
[m3ua-gateway] type=ss7-m3ua-gateway sig=sctp-link router=ss7-router # 启用SS7路由器,原配置router=false会导致路由失效 network=isup-trunk ; SS7 ISUP中继配置 [isup-trunk] type=ss7-isup netindicator=national pointcodetype=ITU pointcode=0-0-6 # Yate A本地点码 remotepointcode=0-0-5 # 必须与Yate B的本地点码一致 defaultpointcode=0-0-5 router=ss7-router ; 新增SS7路由器配置 [ss7-router] type=ss7-router default=isup-trunk
3. regexroutes.conf(SIP转ISUP路由规则)
添加规则将SIP呼叫导向ISUP中继:
; 所有来自SIP的呼叫转发到ISUP中继 ^sip/(.*)=$ISUP/\1@isup-trunk ; 可选:匹配特定号码前缀(如10开头)的呼叫 ^sip/10(.*)=$ISUP/10\1@isup-trunk
4. sip.conf(SIP接入补充)
确保SIP电话A能注册到Yate A:
[sip-phone-a] type=register username=sip-phone-a password=your-secure-password domain=YATE_A_IP allow=all
二、Yate B 配置(ISUP over M3UA转SIP)
1. sigtransport.conf(SCTP传输层)
对应Yate A配置,设置本地及远程IP:
[sctp-link] type=sctp stream=false local=YATE_B_IP:5050 # 替换为Yate B实际IP,如172.16.100.20:5050 remote=YATE_A_IP:5050 # 替换为Yate A实际IP,如172.16.100.10:5050 endpoint=true
2. ysigchan.conf(SS7/ISUP通道)
本地点码与Yate A的远程点码保持一致:
[m3ua-gateway] type=ss7-m3ua-gateway sig=sctp-link router=ss7-router network=isup-trunk ; SS7 ISUP中继配置 [isup-trunk] type=ss7-isup netindicator=national pointcodetype=ITU pointcode=0-0-5 # Yate B本地点码,与Yate A的remotepointcode一致 remotepointcode=0-0-6 # Yate A的本地点码 defaultpointcode=0-0-6 router=ss7-router ; 新增SS7路由器配置 [ss7-router] type=ss7-router default=isup-trunk
3. regexroutes.conf(ISUP转SIP路由规则)
添加规则将ISUP呼叫转发到SIP电话B:
; 所有ISUP呼叫转发到SIP电话B的注册地址 ^ISUP/(.*)=$sip/\1@SIP_PHONE_B_IP # 替换为SIP电话B的IP或注册域 ; 可选:匹配特定号码(如SIP电话B号码为1001) ^ISUP/1001=$sip/1001@172.16.100.30
4. sip.conf(SIP转接补充)
允许Yate B向SIP电话B发起呼叫:
[sip-phone-b-outbound] type=call username=sip-phone-b domain=SIP_PHONE_B_IP allow=all
三、关键验证项
- SCTP连通性:确保Yate A与Yate B的5050端口开放SCTP协议,可通过
sctp_test工具测试连通性。 - 点码一致性:Yate A的
remotepointcode必须与Yate B的pointcode完全匹配,反之亦然。 - 号码格式兼容:若SIP与ISUP号码格式不一致(如有无区号前缀),可在regexroutes.conf中添加转换规则,例如:
; 将SIP的1001转换为ISUP的001001 ^sip/1001=$ISUP/001001@isup-trunk
内容的提问来源于stack exchange,提问作者Mohammad Ghasemi
相关产品推荐
相关产品推荐

