On Wed, 6 Jan 2016, D'Arcy J.M. Cain wrote:

It's very simple but it doesn't work.  Here's the entire script.

#! /usr/bin/python

import sys

env = {}

def comm(cmd):
   sys.stdout.write(cmd.strip() + '\n')
   sys.stdout.flush()
   return sys.stdin.readline().strip()

while 1:
  line = sys.stdin.readline().strip()

  if line == '': break

  key,data = line.split(':')
  if key[:4] == 'agi_':
      key = key.strip()[4:]
      data = data.strip()
      if key: env[key] = data

#comm("Verbose(0,pyast: %s)" % sys.argv)
comm('SAY NUMBER 123 ""')

sys.stderr.write("AGI Environment Dump:\n");
for key in env.keys():
  sys.stderr.write(" -- %s = %s\n" % (key, env[key]))

sys.stderr.flush()

The extension is;

exten => *22,1,Verbose(0,${CHANNEL(peername)} calling 22 TEST)
 same => n,AGI(/home/darcy/pyast,Hello world)
 same => n,Hangup

What happens when I dial it is that the dialplan Verbose statement runs
but nothing else is logged and the number is not said.  When I turn on
AGI debugging I get this:

... (a bunch of agi_ variables)
<SIP/darcy-0000000d>AGI Tx >> agi_arg_1: Hello world
<SIP/darcy-0000000d>AGI Tx >>
<SIP/darcy-0000000d>AGI Rx << SAY NUMBER 123 ""
<SIP/darcy-0000000d>AGI Tx >> 200 result=0

There is a delay between the last Rx and Tx suggesting that it thinks
that the numbers are being played but I don't hear them.  Also, the
output to stderr does not appear in the logs.

Here is my environment:
- Asterisk 11.20.0
- NetBSD 7.0
- Python 3.4

In no particular order (except #0):

0) Use an existing Python library. Nobody gets it right the first time. I wrote my C library 100 years ago, so I don't remember all the specifics of the AGI protocol.

1) Is the space after the 'she-bang' significant?

2) Your 'sys.stderr.write' may be violating the AGI protocol. Writing to stdout definitely does. I don't remember what writing to stderr does.

3) If you dump your AGI environment before 'say number' do you get a different outcome?

4) Any chance the 'digits' directory is missing or that your channel language is set weird? Does the saynumber() dialplan application work?

5) Can you play any audio to the channel? Does playback(demo-congrats) work?

(That was my last straw to grasp -- need another cup of tea.)

--
Thanks in advance,
-------------------------------------------------------------------------
Steve Edwards       sedwa...@sedwards.com      Voice: +1-760-468-3867 PST

--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
              http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to