Как создать большое количество исходящих звонков параллельно?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как создать большое количество исходящих звонков параллельно?

Сообщение Anonymous »

Я хочу инициировать около 100 параллельных вызовов, только с записью другой стороны, в одном процессе с использованием python3 + pjsua2. Начальный этап в порядке, но на сделанных записях звук зажат (звук в wav в 2-3 раза быстрее реального звука), возможно, проблема где-то с RTP. Что я мог сделать, чтобы это исправить?
Раньше я использовал один рабочий Python = один клиент pjsua2 = 10-15 вызовов. И это сработало совершенно хорошо, но тяжело для оперативной памяти. Вот почему я пытаюсь поместить все в один процесс, но не уверен, что это вообще возможно.
Вот моя компиляция и конфигурации приложения для 100 параллельных вызовов в одном процессе.
"-DPJSIP_T1_TIMEOUT=3000 -DPJSIP_T2_TIMEOUT=10000 \
-DPJSUA_MAX_CALLS=150 -DPJSUA_MAX_ACC=150 \
-DPJ_LOG_ENABLE_COLORS=1 -DPJMEDIA_CODEC_FRAME_PTIME=30 \
-DPJSIP_MAX_TSX_COUNT=1000 -DPJSIP_MAX_DIALOG_COUNT=1000 \
-DPJ_IOQUEUE_MAX_HANDLES=1024 -DPJMEDIA_HAS_VIDEO=0\
-DPJSIP_UDP_SO_SNDBUF_SIZE=524288 -DPJSIP_UDP_SO_RCVBUF_SIZE=524288 \
-DPJ_HAS_THREADS=1 -DPJ_TIMER_HEAP_SIZE=262144 \
-DPJ_POOL_LEN=8000 -DPJ_POOL_INC=1024 \
-DPJ_THREAD_STACK_SIZE=512*1024 -fPIC" ./configure --disable-video

class PJSIP:
_instance = None

def __new__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super(PJSIPApp, cls).__new__(cls)
return cls._instance

def __init__(
self,
):
if not hasattr(self, "_initialized"):
self.ep = Endpoint()
self.accounts = {}
self.calls = {}
self.log_cfg = pj.LogConfig()
self.log_cfg.level = settings.PJSIP_LOG_LEVEL
self.log_cfg.msgLogging = True

self.create_lib()
self._initialized = True

def create_lib(
self,
):
try:
self.ep_cfg = pj.EpConfig()
self.ep_cfg.uaConfig.threadCnt = 1
self.ep_cfg.uaConfig.mainThreadOnly = False
self.ep_cfg.uaConfig.maxCalls = 150
self.ep_cfg.uaConfig.enableAec = False
self.ep_cfg.medConfig.noVad = True
self.ep_cfg.medConfig.threadCnt = 4
self.ep_cfg.medConfig.audioFramePtime = 30
self.ep_cfg.medConfig.ptime = 30
self.ep_cfg.logConfig = self.log_cfg

self.ep.libCreate()
self.ep.libInit(self.ep_cfg)
transport_cfg = pj.TransportConfig()
transport_cfg.port = 0

self.ep.transportCreate(pj.PJSIP_TRANSPORT_UDP, transport_cfg)
self.ep.audDevManager().setNullDev()
self.ep.libStart()

self.configure_codecs()
except pj.Error as e:
logger.error(
f"Can't initiate pjsip lib: {e.reason}", exc_info=True, stack_info=True
)


Подробнее здесь: https://stackoverflow.com/questions/792 ... n-parallel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как отправить POST-запрос к ресурсу «Звонки»? (совершение исходящих звонков в Twilio)
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как отправить POST-запрос к ресурсу «Звонки»? (совершение исходящих звонков в Twilio)
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Возможно ли в Android записывать звонок во время входящих или исходящих звонков
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Ограничение на количество звонков в минуту для FeignClient
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как получить количество звонков с помощью Mock @patch?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»