Python,PJSUA,AESTRISK
我正在尝试创建一个具有呼叫按钮的浏览器应用程序。通过单击呼叫按钮,我想使用我的voip配置连接到星号服务器并建立对所需移动用户的呼叫。
作为第一步,通过修改上述示例中给出的Mycallcallback
功能,我可以使用此example从我的电脑拨打电话号码(到手机号码)
class MyCallCallback(pj.CallCallback):
def __init__(self, call=None):
pj.CallCallback.__init__(self, call)
def on_state(self):
if self.call.info().state == pj.CallState.CONFIRMED:
print("Connected")
if self.call.info().state == pj.CallState.DISCONNECTED:
print("Disconnected")
def on_media_state(self):
self.call_slot = self.call.info().conf_slot
if (self.call.info().media_state == pj.MediaState.ACTIVE) and (self.call_slot >= 0):
# Connect the call to sound devices of my PC
lib.conf_connect(self.call_slot, 0)
lib.conf_connect(0,self.call_slot)
# enable sound devices (self, mic, speaker) 0 by default
lib.set_snd_dev(0,0)
运行代码,我可以访问我的设备扬声器和麦克风,以便与我呼叫的用户(手机号码)进行通信。一切顺利,正常的电话交谈,我可以在不使用任何外部设备的情况下使用我的电脑。所以我虽然将其转换为api,以便我可以ping api以在移动用户和PC之间建立呼叫,这正在ping这个api。如果这有效,我想编码,以便点击浏览器上的按钮将ping这个api。
但是当我试图ping这个api时,呼叫已建立并且它不能访问它所从的PC的扬声器和麦克风。我可以理解,原因是它正在激活api正在运行的PC的麦克风和扬声器,而不是它正在ping的PC的麦克风和扬声器。
在这种情况下,如何修改或添加程序,以便当我ping api时,它在ping api和手机号码时在PC之间建立呼叫。
我见过另一个example,它正在访问记录器插槽和播放器插槽,但在我的情况下这没用。我尝试将客户端地址更改为ping PC IP地址,但它出现错误,无法在客户端和星号服务器之间建立传输Error: Object: Lib, operation=create_transport(), error=Cannot assign requested address
有关如何进行下一步的任何建议?