Browse Source

divide audio

Hal De 3 years ago
parent
commit
fb5ea83555
1 changed files with 36 additions and 3 deletions
  1. 36 3
      app/app.py

+ 36 - 3
app/app.py

@@ -1,10 +1,12 @@
 #!/usr/bin/env python3
 #!/usr/bin/env python3
+
 import asyncio
 import asyncio
 import aiohttp
 import aiohttp
 import logging
 import logging
 import os
 import os
 import re
 import re
 import json
 import json
+from datetime import date as date
 from datetime import datetime as dt
 from datetime import datetime as dt
 from datetime import timedelta as td
 from datetime import timedelta as td
 from typing import Any, Optional
 from typing import Any, Optional
@@ -221,9 +223,16 @@ async def celCallback(mngr: Manager, msg: Message):
     if ('transferee_channel_uniqueid' in extra) and ('channel2_uniqueid' in extra):
     if ('transferee_channel_uniqueid' in extra) and ('channel2_uniqueid' in extra):
       first = extra['transferee_channel_uniqueid']; #unique
       first = extra['transferee_channel_uniqueid']; #unique
       second = extra['channel2_uniqueid']   #linked
       second = extra['channel2_uniqueid']   #linked
-      #amiStopMixMonitor(first);
-      #amiStartMixMonitor(first,"{}/{}-{}-{}.wav".format(date.today().strftime("%Y/%m/%d"), msg.Exten, msg.CallerIDnum, msg.UniqueID));#2022/03/11/external-2534-1934-20220311-122726-1647001646.56557.wav
-      #amiStopMixMonitor(second);
+      firstname = extra['transferee_channel_name']
+      secondname = extra['channel2_name']
+      if (msg.CallerIDrdnis == '78124254209'):
+        res = await amiStopMixMonitor(firstname);
+        app.logger.warning('{}'.format(res))
+        filename = "transfer-{}-{}-{}.wav".format(msg.Exten, msg.CallerIDnum, msg.LinkedID);
+        res = await amiStartMixMonitor(firstname,"{}/{}".format(date.today().strftime("%Y/%m/%d"),filename));#2022/03/11/external-2534-1934-20220311-122726-1647001646.56557.wav
+        res = await amiChannelSetVar(firstname,"CDR(recordingfile)",filename)
+        app.logger.warning('{}'.format(res));
+        #await amiStopMixMonitor(secondname);
       app.cache['cel_calls'][lid]['transfers'].append((first,second)) #no cdr in db here
       app.cache['cel_calls'][lid]['transfers'].append((first,second)) #no cdr in db here
       app.logger.warning('first {} {}'.format(first,second))
       app.logger.warning('first {} {}'.format(first,second))
     
     
@@ -606,6 +615,30 @@ async def amiUserEvent(name, data):
       return reply.message
       return reply.message
   return 'AMI error'
   return 'AMI error'
 
 
+async def amiChannelSetVar(channel,variable, value):
+  '''AMI SetVar
+  Sets variable using AMI action SetVar to value in background.
+
+  Parameters:
+    channel (string)
+    variable (string): Variable to set
+    value (string): Value to set for variable
+
+  Returns:
+    string: None if SetVar was successfull, error message overwise
+  '''
+  reply = await manager.send_action({'Action': 'SetVar',
+                                     'Variable': variable,
+                                     'Channel': channel,
+                                     'Value': value})
+  app.logger.warning('SetVar({},{}={})'.format(channel,variable, value))
+  if isinstance(reply, Message):
+    if reply.success:
+      return None
+    else:
+      return reply.message
+  return 'AMI error'
+
 async def amiSetVar(variable, value):
 async def amiSetVar(variable, value):
   '''AMI SetVar
   '''AMI SetVar
   Sets variable using AMI action SetVar to value in background.
   Sets variable using AMI action SetVar to value in background.