kamailio技术探秘(二):路由脚本介绍

kamailio支持强大的路由配置,路由语法就像一个小型的脚本语言。kamailio的业务逻辑都由脚本来实现,结合不同的模块提供的功能,脚本可以对会话中的逻辑做丰富的自定义路由,只需要修改kamailio.cfg脚本。
kamailio路由脚本配置主要分为三个部分:全局参数、模块配置、路由逻辑。
全局参数:配置全局参数,如日志、调试级别、监听的IP地址和端口等。全局参数影响Kamailio核心以及所有模块。

####### Global Parameters #########

/* LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR, ... */
debug=DBGLEVEL  #日志级别

/* set to 'yes' to print log messages to terminal or use '-E' cli option */
log_stderror=yes

memdbg=5
memlog=5

log_facility=LOG_LOCAL0               #日志输出的设备,使用syslokg输出
log_prefix="{$mt $hdr(CSeq) $ci} "

/* number of SIP routing processes for each UDP socket
 * - value inherited by tcp_children and sctp_children when not set explicitely */
children=8

/* uncomment the next line to disable TCP (default on) */
# disable_tcp=yes

/* number of SIP routing processes for all TCP/TLS sockets */
# tcp_children=8

/* uncomment the next line to disable the auto discovery of local aliases
 * based on reverse DNS on IPs (default on) */
# auto_aliases=no

/* add local domain aliases - it can be set many times */
# alias="sip.mydomain.com"

/* listen sockets - if none set, Kamailio binds to all local IP addresses
 * - basic prototype (full prototype can be found in Wiki - Core Cookbook):
 *      listen=[proto]:[localip]:[lport] advertise [publicip]:[pport]
 * - it can be set many times to add more sockets to listen to */
listen=udp:192.168.74.71:5060
listen=tcp:192.168.74.71:5060

模块配置:监听的IP地址和端口等。全局参数影响Kamailio核心以及所有模块。kamailio是模块化设计的,模块需要配置才会加载。
路由逻辑:kamailio支持强大的路由配置,分为主路由(route)和子路由(route[“name”],以及branch_route,failure_route,onreply_route,error_route,local_route等。所有请示事件都从主路由(route)开始,主路由中可以嵌入多个子路由和设置其他类型路由。
配置文件使用类似C语言的语法实现,第一个路由块是request_route,它是最先接收SIP消息的地方。根据请求以及呼叫进展的情况,它会调用其他路由块进行处理。注意,这些route()路由块内可能会调用exit实现返回,也就是说,不管在哪里执行了exit,对本SIP消息的处理就结束了,都不会再执行它后面的代码。
环境变量:通常在实际项目的开发中,需要配置SIP服务器的监听地址,而非默认配置为固定IP,因此可以通过获取环境变量的方式来灵活配置

!defenv表示从系统环境变量中获取值,并用define定义为Kamailio宏


####### Include Local Config If Exists #########
import_file "kamailio-local.cfg"

#!defenv LOCAL_IP

listen=udp:LOCAL_IP:5060
listen=tcp:LOCAL_IP:5060
[root@localhost sbin]# export  LOCAL_IP=192.168.74.81
[root@localhost sbin]# env
LOCAL_IP=192.168.74.81
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值