首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kamailio 5: KEMI & Python - import KSR

Kamailio 5: KEMI & Python - import KSR
EN

Stack Overflow用户
提问于 2021-01-16 06:50:53
回答 1查看 132关注 0票数 1

我目前在生产中使用的是较旧版本的Kamailio。我希望能够编写一些自定义逻辑,而v5允许我使用KEMI解释器在Python语言中实现这一点-所以我对升级很感兴趣。然而,我遇到了一些我以前从未见过的事情。

Kamailio网站上的示例脚本显示了此示例.py脚本:

代码语言:javascript
复制
import sys
import KSR as KSR

def dumpObj(obj):
    for attr in dir(obj):
        KSR.info("obj.%s = %s\n" % (attr, getattr(obj, attr)))

def mod_init():
    KSR.info("===== from Python mod init\n")
    # dumpObj(KSR)
    return kamailio()

class kamailio:
    def __init__(self):
        KSR.info('===== kamailio.__init__\n')

    def child_init(self, rank):
        KSR.info('===== kamailio.child_init(%d)\n' % rank)
        return 0

    def ksr_request_route(self, msg):
        KSR.info("===== request - from kamailio python script\n")
        KSR.setdsturi("sip:alice@127.0.0.1:5080")
        KSR.tm.t_on_branch("ksr_branch_route_one")
        KSR.tm.t_on_reply("ksr_onreply_route_one")
        KSR.tm.t_on_failure("ksr_failure_route_one")
        KSR.sl.send_reply(100, "Trying")
        if KSR.tm.t_relay() < 0 :
            KSR.sl.send_reply(500, "Server error")
        return 1

    def ksr_reply_route(self, msg):
        KSR.info("===== response - from kamailio python script\n")
        return 1

    def ksr_onsend_route(self, msg):
        KSR.info("===== onsend route - from kamailio python script\n")
        return 1

    def ksr_branch_route_one(self, msg):
        KSR.info("===== branch route - from kamailio python script\n")
        return 1

    def ksr_onreply_route_one(self, msg):
        KSR.info("===== onreply route - from kamailio python script\n")
        return 1

    def ksr_failure_route_one(self, msg):
        KSR.info("===== failure route - from kamailio python script\n")
        return 1

所以我的问题是:"KSR“是从哪里来的?几乎看起来Kamailio正在神奇地将该库挂在那里,以便Python导入。我找不到任何方法来安装它,所以我很想知道交易是什么,如果有人知道的话。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-10-18 21:28:40

KSR来自kamailio.cfg文件。您不能单独运行sample.py文件。

基本上,如果您想使用Python KEMI解释器,则必须安装app_python3.so Kamailio模块。然后在kamailio.cfg (Kamailio的配置文件)中加载模块"app_python3.so“,并在路由逻辑中导入sample.py文件。

代码语言:javascript
复制
modparam("app_python3", "load", "/etc/kamailio/sample.py")

cfgengine "python"

因此,您自己启动Kamailio,它将处理运行的sample.py。

有关更多信息,我推荐这篇文章:https://nickvsnetworking.com/kamailio-bytes-python-sip-with-kemi/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65744575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档