如何解决AGI pyth2 + serversocket 无法发送命令
我试图从我的 AGI 服务器向 Asterisk 服务器发送命令,当我尝试这样做时,我收到错误“一个未知错误:需要一个类似字节的对象,而不是 'str”。我尝试将响应编码为字节,但没有成功。
from asterisk.agi import AGI
import socketserver
import sys
HOST,PORT = "192.168.243.32",4573
class FastAGI(socketserver.StreamRequestHandler):
def handle(self):
try:
agi = AGI(stdin=self.rfile,stdout=self.wfile,stderr=sys.stderr)
agi.send_command('ANSWER')
agi.set_variable('TEST','8888')
agi.send_command('HANGUP')
except Exception as e:
sys.stderr.write('An unknown error: {}\n'.format(str(e)))
if __name__ == "__main__":
server = socketserver.ForkingTCPServer((HOST,PORT),FastAGI)
server.serve_forever()
我收到错误:
ENV LINE: agi_network: yes
ENV LINE: agi_request: agi://192.168.243.32:4573
ENV LINE: agi_channel: SIP/271-00000227
ENV LINE: agi_language: ru
ENV LINE: agi_type: SIP
ENV LINE: agi_uniqueid: 1617622217.1069
ENV LINE: agi_version: 13.38.1
ENV LINE: agi_callerid: 271
ENV LINE: agi_calleridname: okravets
ENV LINE: agi_callingpres: 0
ENV LINE: agi_callingani2: 0
ENV LINE: agi_callington: 0
ENV LINE: agi_callingtns: 0
ENV LINE: agi_dnid: 555
ENV LINE: agi_rdnis: unknown
ENV LINE: agi_context: from-internal
ENV LINE: agi_extension: 555
ENV LINE: agi_priority: 1
ENV LINE: agi_enhanced: 0.0
ENV LINE: agi_accountcode:
ENV LINE: agi_threadid: 140014306338560
ENV LINE:
class AGI: self.env = {'agi_accountcode': '','agi_callerid': '271','agi_calleridname': 'okravets','agi_callingani2': '0','agi_callingpres': '0','agi_callingtns': '0','agi_callington': '0','agi_channel': 'SIP/271-00000227','agi_context': 'from-internal','agi_dnid': '555','agi_enhanced': '0.0','agi_extension': '555','agi_language': 'ru','agi_network': 'yes','agi_priority': '1','agi_rdnis': 'unknown','agi_request': 'agi://192.168.243.32:4573','agi_threadid': '140014306338560','agi_type': 'SIP','agi_uniqueid': '1617622217.1069','agi_version': '13.38.1'}
COMMAND: ANSWER
An unknown error: a bytes-like object is required,not 'str'
我使用这个库 https://github.com/rdegges/pyst2
我刚刚开始熟悉 AGI 和 Python,一切都对我有用,如果我不使用 socketserver 并在本地从星号发送一个调用到 python 脚本,如果有人能帮我弄清楚并指出我的错误,请帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。