当前位置: 首页 > news >正文

可以免费发布招聘网站做网站的结论

可以免费发布招聘网站,做网站的结论,医院网站,企业网站和官网的区别# 介绍kamailio的dialog模块 kamailio的dialog模块一般有四个作用#xff1a; - 读写对话变量 - 跟uac模块配合#xff0c;完成uac trunk auth功能 - 统计early_dialogs和active_dialogs等 - 利用dialog profile实现分类统计功能或者实现呼叫限制功能 dialog模块的参数可以…# 介绍kamailio的dialog模块 kamailio的dialog模块一般有四个作用 - 读写对话变量 - 跟uac模块配合完成uac trunk auth功能 - 统计early_dialogs和active_dialogs等 - 利用dialog profile实现分类统计功能或者实现呼叫限制功能 dialog模块的参数可以配置如下 modparam(dialog, db_url, DBURL) modparam(dialog, enable_stats, 1) # 使能统计功能 modparam(dialog, db_mode, 1) modparam(dialog, dlg_flag, DLG_FLAG) # 范围是0:31 modparam(dialog, dlg_match_mode, 1) modparam(dialog, default_timeout, 43200 ) # 12小时设置dialog超时时间 modparam(dialog, track_cseq_updates, 1) modparam(dialog, profiles_no_value, total; emergency) modparam(dialog, profiles_with_value, user; type; account) 下面这段路由脚本创建对话 route[INVITE] {     if (is_method(INVITE) !has_totag()) {         setflag(DLG_FLAG); # 创建对话跟dlg_flag参数的值对应起来         # dlg_manage(); # 调用这个函数也可以创建对话     }     return; } 目前对话变量仅支持字符串类型下面这段代码可以证明这点 $dlg_var(test_i) 1; if (!pv_isset($dlg_var(test_i))) {     xerr(route run here, file$cfg(file) line$cfg(line)\n); } $dlg_var(test_s) 1; if (pv_isset($dlg_var(test_s))) {     xinfo(route run here, file$cfg(file) line$cfg(line)\n); } 我们知道avp变量仅在事务期间有效如果想在整个对话期间都有效那就需要用到对话变量了 对话变量常见的使用场景可能是写自己的话单这里给出路由脚本 route[INVITE] {     if (is_method(INVITE) !has_totag()) {         dlg_manage();         $dlg_var(SetupTime) $TS;     }     return; } event_route[dialog:start] {     $dlg_var(AnswerTime) $TS; } event_route[dialog:end] {     $dlg_var(EndTime) $TS;     $dlg_var(BillSec) (str)($dlg_var(EndTime) - $dlg_var(AnswerTime));  # 转成字符串类型     xinfo($dlg_var(BillSec)\n); $var(x) $_s({Event:Call_End, CallID:$dlg(callid), From:$dlg(from_uri), To:$dlg(to_uri), );     $var(x) $var(x) $_s(SetupTime:$dlg_var(SetupTime), AnswerTime:$dlg_var(AnswerTime), EndTime:$dlg_var(EndTime), BillSec:$dlg_var(BillSec)}); xinfo($var(x)\n);     # http post } 接下来讨论uac trunk auth流程如下 1. A - INVITE - kamailio                     B 2. A              kamailio -    INVITE     - B CSeq 3. A              kamailio -    401(7)     - B 4. A              kamailio - INVITE (auth) - B CSeq1 5. A              kamailio -      200      - B 6. A  - 200 -   kamailio 把dialog模块的track_cseq_updates参数配置为1第四步CSeq就会自动加一 模块配置和路由脚本示意如下 #!define UAC_CONTACT_ADDRESS 192.168.1.100:5060 modparam(uac, reg_db_url, DBURL) modparam(uac, reg_timer_interval, 3) modparam(uac, reg_retry_interval, 28) modparam(uac, reg_gc_interval, 30) modparam(uac, reg_contact_addr, UAC_CONTACT_ADDRESS) modparam(uac, auth_realm_avp, $avp(arealm)) modparam(uac, auth_username_avp, $avp(auser)) modparam(uac, auth_password_avp, $avp(apasswd)) modparam(uac, reg_keep_callid, 1) route[GW] {     $du sip:192.168.1.101:5060;     t_on_failure(TRUNKAUTH);     t_relay();     exit; } failure_route[TRUNKAUTH] {     if (t_is_canceled()) {         exit;     } if(t_check_status(401|407)) {         $avp(auser) test; # 实际使用时需从数据库取出用户名和密码         $avp(apasswd) test; # 同上         if (uac_auth()) {             t_relay();         }         exit;     } } 接下来我们讨论dialog自带的统计功能 enable_stats参数配置为1就可以使能了 这里有二个shell命令都可以查到dialog模块的统计 shell kamcmd stats.get_statistics all | grep dialog shell kamcmd dlg.stats_active 最后我们讨论dialog profile方面的问题 比如dialog这样配置模块参数 modparam(dialog, profiles_no_value, total; emergency) modparam(dialog, profiles_with_value, user; type; account) 那么我们这样写路由 route[INVITE] {     if (is_method(INVITE) !has_totag()) {         dlg_manage();         set_dlg_profile(total);     } route(LOCATION);     return; } 现在做一个呼叫测试6001呼叫6002 shell $kamcmd dlg.profile_get_size total 1 结果是1 下面这个命令得到的输出更加详细 shell $kamcmd dlg.profile_list total {     h_entry: 3702     h_id: 5131     ref: 2     call-id: ef6fcea66f0f40938cc3060226340f39     from_uri: sip:6002192.168.100.200     to_uri: sip:6001192.168.100.200     state: 4     start_ts: 1691650230     init_ts: 1691650229     end_ts: 0     duration: 35     timeout: 1691693429     lifetime: 43200     dflags: 1536     sflags: 0     iflags: 0     caller: {         tag: fa86e515d20348c6b217ae3bd4efcefc         contact: sip:6002192.168.100.172:61224;ob         cseq: 32127         route_set:         socket: udp:192.168.100.200:5060     }     callee: {         tag: 8CC433477696B38087EC8FFAB0858E00         contact: sip:6001192.168.100.121:5060;transportudp         cseq: 0         route_set:         socket: udp:192.168.100.200:5060     }     profiles: {         total     }     variables: {     } } 请注意variables无值 下面是进一步的说明 - set_dlg_profile(total);  # 没问题因为profiles_no_value里面已定义total - set_dlg_profile(emergency); # 没问题因为profiles_no_value里面已定义emergency - set_dlg_profile(total, $fu);  # 不行因为profiles_with_value没有定义total - set_dlg_profile(user, $fu);  # 没问题因为profiles_with_value已定义user 分类统计方面我们可以给一个例子 modparam(dialog, profiles_no_value, total; local; domestic; international) route[INVITE] {     if (is_method(INVITE) !has_totag()) {         dlg_manage();         set_dlg_profile(total); # 总的呼叫数加一         if ($tU ~ ^00) {             set_dlg_profile(international); # 国际长途呼叫数加一         } else if ($tU ~ ^0) {             set_dlg_profile(domestic); # 国内长途呼叫数加一         } else {             set_dlg_profile(local); # 本地呼叫数加一         }     } route(LOCATION);     return; } 至于如何实现呼叫限制功能网上能查到的资料非常丰富这里就不再赘述了。
http://www.w-s-a.com/news/65684/

相关文章:

  • 企业网站 生成html网站侵权怎么做公证或证据保存
  • php 手机网站cms系统购物网站制作流程
  • 网络公司网站开发河北省城乡住房和建设厅网站
  • 做网站配置wordpress 中文api
  • 怎样把网站做的好看县蒙文网站建设汇报
  • 网站的优化什么做广西桂林新闻最新消息
  • 做网站准备什么软件搜索引擎广告推广
  • 网站开发地图板块浮动网页设计与制作的模板
  • 中国建设招聘信息网站昆明做网站建设的公司排名
  • 那些网站可以做自媒体wordpress 分类seo
  • 淮安市盱眙县建设局网站北京西站到八达岭长城最快路线
  • 在线免费网站企业查查官网入口官网
  • 天津网站优化公司哪家专业超融合系统
  • 邹平网站建设公司报价网站建设备案多长时间
  • 三合一网站开发教程wordpress主题汉化中文版
  • 广州网站建设高端全网营销图片
  • 措勤网站建设罗定城乡建设局网站
  • 苏州建网站流程wordpress不显示内容你
  • 网站流量数据golang建设网站
  • 2020电商网站排行榜如何开设网站
  • 绍兴seo网站管理创新的网站建站
  • 做网站需要的图片网站的视频怎么下载
  • 教人做家务的网站滕州网站建设网站行吗
  • 湖北专业的网瘾学校哪家口碑好seo百度百科
  • 保定网站制作软件网页制作工具程
  • o2o网站建设教程计算机培训班培训费用
  • 赤峰网站制作php智能建站系统
  • 做高防鞋 哪个网站能上架net网站开发net网站开发
  • 做网站公司郑州推广计划步骤
  • 网站建设计无形资产外国做美食视频网站