· 6 years ago · Oct 04, 2019, 03:06 AM
1""" The error I get is this:
2 File "./sip_failover.py", line 33, in dial_sip
3 if(int(dialSipResponseCode) > 299 or dialCallStatus == "failed"):
4ValueError: invalid literal for int() with base 10: ''
5
6The data that comes in:
7<QueryDict: {'CallSid': ['xxxxxx'], 'AccountSid': ['xxxxxxxx'], 'From': ['+xxxxxxxxxxx'], 'To': ['+xxxxxxxxxxx'], 'Called': ['+xxxxxxxxxxx'], 'CallStatus': ['queued'], 'ApiVersion': ['2010-04-01'], 'Direction': ['inbound']}>
8"""
9from django.http import HttpResponse
10from django.conf.urls import url
11from django.views.decorators.csrf import csrf_exempt
12from signalwire.voice_response import VoiceResponse, Dial, Sip
13
14
15DEBUG = True
16CSRF_COOKIE_SECURE = False
17SECRET_KEY = 'key'
18ROOT_URLCONF = __name__
19ALLOWED_HOSTS = ["0.0.0.0","0.0.0.0","127.0.0.1","domain"]
20did= '+xxxxxxxxxxx'
21response = "";
22
23@csrf_exempt
24
25def dial_sip(request):
26 dialSipResponseCode=""
27 dialCallStatus=""
28 response = VoiceResponse()
29 dial = Dial()
30 if request.method == 'GET':
31 ReqDict = request.GET
32 elif request.method == 'POST':
33 ReqDict = request.POST
34 print(ReqDict)
35 for i,v in ReqDict.items():
36 if i == "DialSipResponseCode":
37 dialSipResponseCode = v
38 print(dialSipReponseCode)
39 if i == "DialCallStatus":
40 dialCallStatus= v
41 if(int(dialSipResponseCode) > 299 or dialCallStatus == "failed"):
42 dial.sip('sip:server1@server.com?trunk='+ did +';transport=udp')
43 response.append(dial)
44 else:
45 dial.sip('sip:server2@server.com?trunk='+ did +';transport=udp')
46 response.append(dial)
47 return HttpResponse(response,content_type='text/xml');
48
49
50urlpatterns = [
51 url(r'^dial_sip$', dial_sip),
52]