Search code examples
curlhttp-redirectpostasterisk

Send location option with CURL in asterisk dialplan


How can i send the --location option to follow redirects with a http post with CURL in an asterisk dialplan equivalent to
curl -L --data "FirstNme=John&LastName=Doe&PhoneNumber=8005551212" https://www.example.com

I tried to do

same => n,Set(CURLOPT(location))
same => n,Set(response=${CURL(https://www.example.com,FirstNme=John&LastName=Doe&PhoneNumber=8005551212)})

and

same => n,Set(response=${CURL(https://www.example.com,-L --data "FirstNme=John&LastName=Doe&PhoneNumber=8005551212")})

and it did't work.

how can i do it?


Solution

  • CURLOPT now has followlocation and maxredirs parameters

    CURLOPT() Synopsis

    Sets various options for future invocations of CURL. Description

    Options may be set globally or per channel. Per-channel settings will override global settings. Only HTTP headers are added instead of overriding Syntax

    CURLOPT(key)

    Arguments

    • key
      • cookie - A cookie to send with the request. Multiple cookies are supported.
      • conntimeout - Number of seconds to wait for a connection to succeed
      • dnstimeout - Number of seconds to wait for DNS to be resolved
      • followlocation - Whether or not to follow HTTP 3xx redirects (boolean)
      • ftptext - For FTP URIs, force a text transfer (boolean)
      • ftptimeout - For FTP URIs, number of seconds to wait for a server response
      • header - Include header information in the result (boolean)
      • httpheader - Add HTTP header. Multiple calls add multiple headers. Setting of any header will remove the default "Content-Type application/x-www-form-urlencoded"
      • httptimeout - For HTTP(S) URIs, number of seconds to wait for a server response
      • maxredirs - Maximum number of redirects to follow. The default is -1, which allows for unlimited redirects. This only makes sense when followlocation is also set.
      • proxy - Hostname or IP address to use as a proxy server
      • proxytype - Type of proxy
        • http
        • socks4
        • socks5
      • proxyport - Port number of the proxy
      • proxyuserpwd - A username:password combination to use for authenticating requests through a proxy
      • referer - Referer URL to use for the request
      • useragent - UserAgent string to use for the request
      • userpwd - A username:password to use for authentication when the server response to an initial request indicates a 401 status code.
      • ssl_verifypeer - Whether to verify the server certificate against a list of known root certificate authorities (boolean).
      • hashcompat - Assuming the responses will be in key1=value1&key2=value2 format, reformat the response such that it can be used by the HASH function.
        • yes
        • no
        • legacy - Also translate + to the space character, in violation of current RFC standards.
      • failurecodes - A comma separated list of HTTP response codes to be treated as errors