分享fred的kamailio脚本

news/2024/11/22 13:16:48/
## 来源:https://github.com/fredposner/scripts/blob/master/kamailio/mid-registrar.cfg#!KAMAILIO
#
# Edge proxy configuration
# mid-registrar example
##!substdef "!REGISTRAR_IP!a.b.c.d!g"
#!substdef "!REGISTRAR_PORT!5060!g"
#!substdef "!MY_DOMAIN!whatever.net!g"
#!substdef "!MY_IP_ADDR!e.f.g.h!g"
#!substdef "!MY_PUBLIC_IP!i.j.k.l!g"####### Global Parameters #########debug=2
log_stderror=no
log_facility=LOG_LOCAL0
log_prefix="{$mt $hdr(CSeq) $ci} "
fork=yes
children=2 #-- use one per core
listen=MY_IP_ADDR advertise MY_PUBLIC_IP:5060
alias="MY_DOMAIN"
alias="MY_PUBLIC_IP"
force_rport=yes####### Modules Section ########loadmodule "jsonrpcs.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "outbound.so"
loadmodule "rr.so"
loadmodule "path.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "textops.so"
loadmodule "corex.so"
loadmodule "textopsx.so"
loadmodule "siputils.so"
loadmodule "htable.so"# ----------------- setting module-specific parameters ---------------
modparam("tm", "failure_reply_mode", 3)
modparam("rr", "append_fromtag", 0)
modparam("corex", "alias_subdomains", "MY_DOMAIN")
modparam("htable", "htable", "regs=>size=14;autoexpire=3530;") #- 16384 slots####### Routing Logic ########request_route {route(REQINIT);if (is_method("CANCEL")) {if (t_check_trans()) {route(RELAY);}exit;}route(WITHINDLG);t_check_trans();if (is_method("REGISTER")) {if ($sht(regs=>$fU@$fd)!=$null) {if ($sht(regs=>$fU@$fd)==$_s($si:$sp)) {sl_send_reply("200", "OK");exit;}}$var(host) = $si + ":" + $sp;$var(user) = $(sel(contact.uri.user));remove_hf("Route");remove_hf("Contact");if (is_present_hf("Expires")) {remove_hf("Expires");}add_path();append_hf("Contact: <sip:$var(user)@MY_PUBLIC_IP;lhst=$var(host);lm=midreg>\r\n","CSeq");append_hf("Expires: 3600\r\n", "Contact");$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";} else {if (is_method("INVITE|SUBSCRIBE"))record_route();if(src_ip!=REGISTRAR_IP){if ($rU == $null) {sl_send_reply("484", "Address Incomplete");exit;}$var(host) = $si + ":" + $sp;$var(user) = $(sel(contact.uri.user));remove_hf("Contact");append_hf("Contact: <sip:$var(user)@MY_PUBLIC_IP;lhst=$var(host);lm=midreg>\r\n","CSeq");$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";} else {# From registrar so route using "Route:" headers...if ($(ru{uri.param,lm}) == "midreg") {$var(host) = $(ru{uri.param,lhst});$du = "sip:" + $(ru{uri.user}) + "@" + $var(host);}t_on_failure("FAIL_OUTBOUND");}}route(RELAY);
}route[RELAY] {if (!t_relay()) {sl_reply_error();}exit;
}route[REQINIT] {if (!mf_process_maxfwd_header("10")) {sl_send_reply("483","Too Many Hops");exit;}if(!sanity_check("1511", "7")){xlog("Malformed SIP message from $si:$sp\n");exit;}
}route[WITHINDLG] {if (has_totag()) {if (!loose_route()) {switch($rc) {case -2:sl_send_reply("403", "Forbidden");exit;default:if (is_method("ACK")) {if ( t_check_trans() ) {route(RELAY);exit;} else {exit;}}sl_send_reply("404","Not Found");}} else {if (is_method("NOTIFY")) {record_route();}route(RELAY);}exit;}
}onreply_route {if (!t_check_trans()) {drop;}if (src_ip!=REGISTRAR_IP) {$var(host) = $si + ":" + $sp;$var(user) = $(sel(contact.uri.user));remove_hf("Contact");append_hf("Contact: <sip:$var(user)@MY_PUBLIC_IP;lhst=$var(host);lm=midreg>\r\n","CSeq");$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";}if ($(ru{uri.param,lm}) == "midreg") {$var(host) = $(ru{uri.param,lhst});$du = "sip:" + $(ru{uri.user}) + "@" + $var(host);if ($rm == "REGISTER" && $rs == "200") {$sht(regs=>$fU@$fd) = $var(host);if (is_present_hf("Expires")) {$var(exp) = $hdr(Expires) - 30;$shtex(regs=>$fU@$fd) = $var(exp);remove_hf("Expires");}if (is_present_hf("Contact")) {remove_hf("Contact");}append_hf("Expires: 60\r\n", "Call-ID");append_hf("Contact: $var(ct)\r\n","CSeq");}}
}failure_route[FAIL_OUTBOUND] {if (t_branch_timeout() || !t_branch_replied()) {send_reply("430", "Flow Failed");}
}

确实写的好,找不到废话

不过,以我目前的眼光去看,转发注册消息时可以增加分支标志,比如bf=192,这样就完美了

kamailio官网Bussiness部分能找到fred的资料


http://www.ppmy.cn/news/965488.html

相关文章

公开信发起人Tegmark:中国得天独厚,为AI安全和治理做贡献丨2023智源大会回顾...

导读 近日&#xff0c;MIT教授、「暂停大型AI实验」公开信的发起人之一Max Tegmark发表了题为「如何掌控 AI」的精彩演说&#xff0c;介绍了发展可控 AI 的重要意义&#xff0c;提出了通过「机械可解释性」实现可控 AI 的技术路线&#xff0c;同时也肯定了中国在 AI 安全领域的…

跨越AI大门,一本翻译蓝皮书、一场人机共译比赛投射出怎样的未来?

大语言模型LLM是这几个月热度最高的全球明星。目前看来&#xff0c;AI逐渐走向复杂专业的白领型岗位&#xff0c;已经是必然的趋势。 OpenAI刚刚发布的35页论文中&#xff0c;提到了最容易受到LLM影响的职业中译员和笔译员排名第二。 以前机器翻译就是出国旅游时拍拍路标、看看…

2023数云原力大会点燃数据资产,共谋金融核心竞争力

5月6日&#xff0c;由国家金融与发展实验室金融科技研究中心学术指导&#xff0c;北京立言金融与发展研究院、神州控股、神州信息、神州数码集团共同主办的2023数云原力大会“数据资产•金融核心竞争力”主题论坛在京盛大举办。金融机构如何更好地发挥数据价值&#xff1f;如何…

勇创世界一流!移动云为我国数字经济发展提供有力支撑

今年2月&#xff0c;中共中央、国务院印发了《数字中国建设整体布局规划》&#xff0c;通过顶层设计及布局&#xff0c;擘画了我国数字经济发展蓝图。近日在国新办举行的第六届数字中国建设峰会新闻发布会上&#xff0c;相关负责人也对我国数字经济现阶段取得的成绩进行了总结&…

第1章信息化发展

广义的信息技术可以追溯到3500~5000年前人类语言的形成和使用&#xff0c;信息技术持续经历了文字的创造、印刷术的发明、电脉冲和电磁的发现与应用、计算机技术发展、新一代信息技术应用等历程。可以看出&#xff0c;信息技术的发展历程&#xff0c;伴随着人类信息沉淀的丰富、…

中国开源创新启示录!

作者 | 郑丽媛、屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 开源是科技创新的重要模式&#xff0c;也是数字经济发展的底座。2021年&#xff0c;“开源”首次被明确列入“十四五”规划&#xff0c;上升至国家战略层面。2022年1月发布的《“十四五”数字经…

C语言数据结构(链表概念讲解和插入操作)

文章目录 前言一、什么是链表二、链表的优点和缺点三、链表节点的定义四、初始化链表五、链表的插入1.头部插入2.尾部插入3.中间插入 六、遍历链表七、释放链表总结 前言 本篇文章带大家正式的来学习数据结构&#xff0c;数据结构是学习操作系统&#xff0c;和深入C语言必不可…

ChatGPT未来会拥有自我情感和思维吗?

ChatGPT是一种基于人工智能的聊天机器人&#xff0c;它可以模拟人类的对话&#xff0c;并且可以回答各种问题。目前&#xff0c;ChatGPT已经非常先进&#xff0c;但是它是否会拥有自我情感和思维呢&#xff1f; 首先&#xff0c;我们需要明确一点&#xff0c;ChatGPT是一种基于…