DTMF Code and durée dans le fichier de configuration
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"CODE_PIN": 1234,
|
||||
"NUM_AUTORISE": "0607297154",
|
||||
"DTMF_CODE": "*",
|
||||
"DTMF_DURATION": 1,
|
||||
"HORAIRES": [{
|
||||
"monday":{
|
||||
"00h00":0,"00h30":0,"01h00":0,"01h30":0,"02h00":0,"02h30":0,"03h00":0,
|
||||
|
||||
+12
-9
@@ -60,10 +60,12 @@ def send_at_cmd(cmd='', serObj=None, log=None):
|
||||
return False
|
||||
return True
|
||||
|
||||
def init_com(serObj=None, pin='', log=None):
|
||||
def init_com(serObj=None, config=None, log=None):
|
||||
''' Init GSM Communication
|
||||
source : SIM800_Series_AT_command Manual_v1.09
|
||||
AT : test command
|
||||
ATE1 :
|
||||
AT+CMEE=2 :
|
||||
AT+CPIN? : Enter PIN (response READY: MT is not pending for any password
|
||||
AT+CREG? : Network registration - return the status of result code
|
||||
AT+CSQ :
|
||||
@@ -76,15 +78,15 @@ def init_com(serObj=None, pin='', log=None):
|
||||
:param serObj:
|
||||
serial object
|
||||
|
||||
:param pin:
|
||||
GSM Pin code
|
||||
:param config:
|
||||
config object
|
||||
|
||||
:param log:
|
||||
logger object
|
||||
|
||||
:return bool:
|
||||
'''
|
||||
cmd_lst = ['AT', 'ATE1', 'AT+CMEE=2', 'AT+CPIN?', 'AT+CREG?', 'AT+CSQ', 'AT+CLTS=1', 'AT+CLIP=1', 'AT+VTD=1']
|
||||
cmd_lst = ['AT', 'ATE1', 'AT+CMEE=2', 'AT+CPIN?', 'AT+CREG?', 'AT+CSQ', 'AT+CLTS=1', 'AT+CLIP=1', 'AT+VTD='+str(config['DTMF_DURATION'])]
|
||||
for cmd in cmd_lst:
|
||||
ret = send_at_cmd(cmd=cmd, serObj=serObj, log=log)
|
||||
if not ret:
|
||||
@@ -114,9 +116,8 @@ def verify_caller(buf="", num="", log=None):
|
||||
log.debug("=> {}".format(outlst))
|
||||
phone_number = outlst[0].replace("\"","")
|
||||
if phone_number != num:
|
||||
log.debug("phone number not match ! {}/{}".format(phone_number, num))
|
||||
log.warning("phone number not match ! {}/{}".format(phone_number, num))
|
||||
return False, phone_number
|
||||
log.debug("phone number match ! {}/{}".format(phone_number, num))
|
||||
return True, phone_number
|
||||
|
||||
###################################################################
|
||||
@@ -159,7 +160,7 @@ def main():
|
||||
ser.flushInput() #flush input buffer, discarding all its contents
|
||||
ser.flushOutput() #flush output buffer, aborting current output
|
||||
# Initialize GSM communication
|
||||
ret = init_com(serObj=ser, pin=config['CODE_PIN'], log=logger)
|
||||
ret = init_com(serObj=ser, config=config, log=logger)
|
||||
if not ret:
|
||||
logger.error("Erreur d'initialisation de la communication avec le module GSM")
|
||||
return
|
||||
@@ -186,10 +187,12 @@ def main():
|
||||
if ret:
|
||||
time.sleep(0.2)
|
||||
# send DMTF tone
|
||||
send_at_cmd(cmd='AT+VTS=*', serObj=ser, log=logger)
|
||||
send_at_cmd(cmd='AT+VTS='+config['DTMF_CODE'], serObj=ser, log=logger)
|
||||
time.sleep(0.5)
|
||||
# Disconnect
|
||||
send_at_cmd(cmd='ATH', serObj=ser, log=logger)
|
||||
ret = send_at_cmd(cmd='ATH', serObj=ser, log=logger)
|
||||
if not ret:
|
||||
logger.error('Cannot disconnect ...')
|
||||
out = ''
|
||||
except Exception as e:
|
||||
logger.error("error communicating: {}".format(e))
|
||||
|
||||
Reference in New Issue
Block a user