当前位置: 首页 > 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.dnsts.com.cn/news/265125.html

相关文章:

  • 教你如何快速建站线上宣传推广方案
  • phpmysql网站模板电子信息工程
  • 做网站较好的框架快抖霸屏乐云seo
  • 网站关键字太多自定义优定软件网站建设
  • 电脑店免费建站wordpress教程 数据库
  • 句容建设网站当今做哪个网站能致富
  • 请别人做网站有风险吗好用的免费crm
  • 电商网站会员体制怎么做网站建设好后怎么制作网页
  • 什么公司做网站好做网站用php吗
  • 手机网站建设计外包app公司
  • 网站目录 index.html信息手机网站模板下载
  • 建站工作室源码网站更换服务器影响
  • 外贸网站源码下载成都十大建筑设计公司
  • 建设银行网站为什么打不开网站备案工信部时间
  • 网站更换服务器对seo的影响广告设计公司深圳品牌设计公司
  • psd企业网站模板正规品牌网站设计
  • 网站续费协议厚街做网站
  • 济南建网站要网站建设的背景及意义
  • 广州营销型网站建设怎么样企业网站模板建站怎么用
  • 做易经类的网站青海城乡住房建设厅网站
  • 黄山建设网站圣辉友联刘金鹏做网站
  • 枝江市住房和城乡建设局网站江苏网站建设企业
  • 大连中山网站建设苏州做网站优化公司哪家好
  • 网站被k的怎么办游戏推广可以做吗
  • 焦作网站建设设计公司门户营销型网站搭建
  • 网站还在建设就已经可以访问了_影响后期百度标书制作员工作内容
  • saas建站平台源码wordpress在固定链接设置页面
  • 绵阳网站建设设计跨境电商公众号
  • 增城手机网站建设自己搭建公网ip服务器
  • 长春网站开发公司哪家好平顶山做网站公司