|
@@ -251,8 +251,8 @@ class MyCall(pj.Call):
|
|
|
self.player_complete_dict[player_id] = False
|
|
|
print('self.player_complete_dict[player_id]D:', player_id, player_file, self.player_complete_dict[player_id])
|
|
|
self.player = MyAudioMediaPlayer(player_id, self.aud_med, on_complete=self.on_media_player_complete)
|
|
|
- # self.player.createPlayer(player_file, pj.PJMEDIA_FILE_NO_LOOP)
|
|
|
- self.player.createPlaylist(player_file, f'my_hello_playlist{player_id}', pj.PJMEDIA_FILE_NO_LOOP)
|
|
|
+ self.player.createPlayer(player_file[0], pj.PJMEDIA_FILE_NO_LOOP)
|
|
|
+ #self.player.createPlaylist(player_file, f'my_hello_playlist{player_id}', pj.PJMEDIA_FILE_NO_LOOP)
|
|
|
self.player.startTransmit(self.aud_med)
|
|
|
|
|
|
def on_receiver_asr_result(self, message, *args):
|
|
@@ -384,7 +384,7 @@ class ToTextBotAgent:
|
|
|
|
|
|
class BotAgent:
|
|
|
|
|
|
- def __init__(self, logger, user_part_range=range(1001, 1011), host=SERVE_HOST, port="5060", password="slibra@#123456"):
|
|
|
+ def __init__(self, logger, user_part_range=range(1001, 1019), host="pbx.fuxicarbon.com", port="5060", password="slibra@#123456"):
|
|
|
self.logger = logger
|
|
|
self.user_part_range, self.host, self.port, self.password = user_part_range, host, port, password
|
|
|
self.user_part_pool = queue.Queue(maxsize=len(user_part_range))
|
|
@@ -397,18 +397,24 @@ class BotAgent:
|
|
|
def create_pjsua2(self):
|
|
|
# Create and initialize the library
|
|
|
ep_cfg = pj.EpConfig()
|
|
|
- ep_cfg.uaConfig.threadCnt = 0
|
|
|
- ep_cfg.uaConfig.mainThreadOnly = True
|
|
|
- ep_cfg.uaConfig.maxCalls = 10
|
|
|
- ep_cfg.uaConfig.maxAccounts = 10
|
|
|
+ ep_cfg.uaConfig.threadCnt = 32
|
|
|
+ ep_cfg.uaConfig.mainThreadOnly = False
|
|
|
+ ep_cfg.uaConfig.maxCalls = 20
|
|
|
+ ep_cfg.uaConfig.maxAccounts = 20
|
|
|
ep_cfg.medConfig.noVad = True
|
|
|
- ep_cfg.logConfig.level = 4
|
|
|
- ep_cfg.logConfig.consoleLevel = 4
|
|
|
+ ep_cfg.logConfig.level = 5
|
|
|
+ ep_cfg.logConfig.consoleLevel = 5
|
|
|
self.ep.libCreate()
|
|
|
self.ep.libInit(ep_cfg)
|
|
|
|
|
|
aud_dev_mgr = self.ep.audDevManager()
|
|
|
aud_dev_mgr.setNullDev() # 使用虚拟音频设备(如果没有实际设备)
|
|
|
+ # Set up media configuration, particularly jitter buffer
|
|
|
+ media_cfg = pj.MediaConfig()
|
|
|
+ media_cfg.jbMinPre = 4 # Minimum pre-fetch frames
|
|
|
+ media_cfg.jbMaxPre = 16 # Maximum pre-fetch frames
|
|
|
+ media_cfg.noVad = True # Disable Voice Activity Detection if needed
|
|
|
+ self.ep.medConfig = media_cfg # Apply media config to endpoint
|
|
|
|
|
|
# Create SIP transport. Error handling sample is shown
|
|
|
sipTpConfig = pj.TransportConfig()
|
|
@@ -430,7 +436,7 @@ class BotAgent:
|
|
|
|
|
|
acfg.natConfig.iceEnabled = True
|
|
|
acfg.natConfig.turnEnabled = True
|
|
|
- acfg.natConfig.turnServer = "stun:192.168.100.159:3478"
|
|
|
+ acfg.natConfig.turnServer = "stun:pbx.fuxicarbon.com:3478"
|
|
|
# acfg.natConfig.turnUsername = "username"
|
|
|
# acfg.natConfig.turnPassword = "password"
|
|
|
|