《FreeSWITCH参考手册》

1.9 mod_enum

说起enum,千万不要跟C语言里的枚举类型(enum)混了。ENUM是E.164 Number to URI Mapping的缩写,即E.164号码到URI的映射关系。如果说到这里你还不理解的话,想象一下域名到IP地址的映射关系吧。当你在Internet上访问一个域名(网址)时,如www.freeeswitch.org.cn,将先由DNS服务器将该域名翻译成一个IP地址,进而,你的注册品会访问该IP地址以获取它想要的网页内容。ENUM也是一样,它只不过是使用了类似DNS的技术,将一个E.164的电话号码(也就是我们常用的电话号码)映射为一个相应的VoIP地址(可以是SIP、H323或Jabber的地址),这样,我们就可以通过拨打一个普通的电话号码来访问一个VoIP地址。

提供这个号码映射关系的网站有e164.org和freenum.org等,有兴趣读者可以试一下。

如果读者比较仔细的话,可以看到在FreeSWITCH默认的Dialplan中有如下的设置:

<extension name="enum">
  <condition field="${module_exists`mod_enum`)}" expression="true"/>
  <condition field="destination_number" expression="^(.*)$">
    <action application="transfer" data="$1 enum"/>
  </condition>
</extension>

上述设置的意思是,如果以上所有Dialplan都没有相应的匹配规则的话,那么Dialplan的匹配将进入这里,该Extension将匹配所有被叫号码,并最终通过transfer App转入enum Dialplan进行进一步的路由查找

enum Dialplan会根据相应的配置查找相应的enum服务器查找是否有匹配的号码,如果能找到与被叫号码相匹配的项(无论是SIP地址还是其它VoIP地址),电话将进而桥接到相应的地址。



本书版权所有 © 杜金房及各位贡献者 2016-2023,仅供在线阅读,谢绝一切形式转载。 本书还在写作中,持续更新。 如果你也想写上几句,欢迎加入我们。 | 返回首页 |