PJSUA2 自动拒绝接听电话

问题描述 投票:0回答:1

我无法通过 PJSUA2 python 脚本接听电话。我已经尽可能简化了我的脚本来复制下面的问题。这个简化的脚本主要来源于 PJSUA2 文档 helloworld examplereceive requests doc。每当我运行它并拨打关联设备的号码时,呼叫都会立即失败,并显示 603 拒绝。

import pjsua2 as pj
import time


class MyAccount(pj.Account):
    def onRegState(self, prm):
        print("***OnRegState: " + prm.reason)

    def onIncomingCall(self, iprm):
        call = MyCall(self, iprm.callId)
        prm = pj.CallOpParam()
        prm.statusCode = 200
        call.answer(prm)


class MyCall(pj.Call):
    def __init__(self, account, call_id):
        pj.Call.__init__(self, account, call_id)


def pjsua2_test():
    # Create and initialize the library
    ep_cfg = pj.EpConfig()
    ep = pj.Endpoint()
    ep.libCreate()
    ep.libInit(ep_cfg)
    ep.audDevManager().setNullDev()

    # Create SIP transport. Error handling sample is shown
    sipTpConfig = pj.TransportConfig()
    sipTpConfig.port = 5060
    ep.transportCreate(pj.PJSIP_TRANSPORT_UDP, sipTpConfig)

    # Start the library
    ep.libStart()

    # Account configuration
    acfg = pj.AccountConfig()
    acfg.idUri = "sip:[email protected]";
    acfg.regConfig.registrarUri = "sip:sip.pjsip.org";
    cred = pj.AuthCredInfo("digest", "*", "test", 0, "pwtest");
    acfg.sipConfig.authCreds.append( cred );
    acfg.sipConfig.authCreds.append(cred)

    # Create the account
    acc = MyAccount()
    acc.create(acfg)

    return ep, acc  # Return the endpoint to keep it alive


if __name__ == "__main__":
    ep, acc = pjsua2_test()

    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        print("Exiting...")
    finally:
        ep.libDestroy()

我读过以前的类似问题,它们似乎都围绕 GC、声卡问题或 NAT 问题。正如你所看到的,我正在保留我的 pjsua 对象,所以我不相信这是 GC。我正在使用 setNullDev(),所以我不认为这是声卡问题。我已将其安装到 Vultr 中,他们直接附加了 IPv4 ip,这样我就可以放心它不是 NAT。但是,我仍然无法接听电话。

如果感兴趣,我使用其 Ubuntu 22.04 映像和以下脚本部署到 Vultr 上:

apt-get update && apt-get install -y build-essential libssl-dev libasound2-dev wget python3 python3-dev automake autoconf libtool libpcre2-dev bison && apt install -y python3-setuptools && cd /usr/src && wget https://github.com/swig/swig/archive/refs/tags/v4.2.1.tar.gz && tar -xvf v4.2.1.tar.gz && cd swig-4.2.1 && ./autogen.sh && ./configure && make && make install && cd /usr/src && wget https://github.com/pjsip/pjproject/archive/refs/tags/2.14.1.tar.gz && tar -xvf 2.14.1.tar.gz && cd pjproject* && ./configure CFLAGS="-fPIC" && make dep && make && make install && cd /usr/src/pjproject*/pjsip-apps/src/swig/python && make && make install && python3 setup.py install

我非常感谢你们能够提供的任何帮助,提前谢谢你们!

python sip pjsip pjsua2
1个回答
0
投票

这里有运气吗?我也遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.