-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 02/09/13 17:02, Jiri Slachta wrote:
> Hello Daniel,
>
> I have tested your resiprocate package at that time you submitted it
and it worked. If you will send your patch again, I can approve those
packages which does not belong to telephony repository by adding
"Tested-by:" and "Reviewed-by" lines since it has been already reviewed
and tested. If libasio will be merged to packages repository, I will
push your reSIProcate package to telephony repository. It is an OK from me.

Are you able to merge the libasio patch, or does somebody else need to
do that?

I've tweaked the patch for reSIProcate 1.8.12, please find it attached

>
> However when you resend your patch, I will test it one more time, but
that should not take a long time.
>
> Regards,
> Jiri
>
> Daniel Pocock <dan...@pocock.com.au> napsal(a):
>>
>>
>> Hi Jiri,
>>
>> Can you please let me know if you had time to look at this?  Do I need
>> to change anything else to have this merged into OpenWRT?
>>
>> There will be a new reSIProcate release in the next few weeks and if I
>> need to make any upstream fixes please let me know
>>
>> Regards,
>>
>> Daniel
>>
>> On 14/05/13 20:49, Daniel Pocock wrote:
>>> On 11/05/13 13:33, Jiri Slachta wrote:
>>>> Hello Daniel,
>>>>
>>>> I will take a look at this. Would you mind to find out, if there are
>> any
>>>> updates related to this app in upstream? I'll do some tests and if
>> it's
>>> The asio version 1.4.8 is the latest - they also have a 1.5.3 dev
>>> release, but it is not for production use and apps like reSIProcate
>> are
>>> not tested with it.
>>>
>>> The latest reSIProcate PKG_VERSION is 1.8.8 - it should work with the
>>> same patch
>>>
>>> The telephony repository is fine for reSIProcate, the asio package is
>> a
>>> general purpose development lib and belongs with things like boost
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel@lists.openwrt.org
>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Icedove - http://www.enigmail.net/

iQIcBAEBCAAGBQJSJKp1AAoJEOm1uwJp1aqDf8gP/A+W2eHzjJiMoCYrJnX9+Tf1
xhDI45Z4XuMKHi3Pg2k8U4blVtlXLWN+ZOOcolgslOGH18QVkKSQCz8MDcigcLEx
WRG0kJygTa3ubfRBWgbeXw9CRdZ8jfg5qL48xRmabakrdlEEtT4sPyp7P4ZDo6v0
s/m3TF9ZPeuYgA6blWqowjOu37+gPl9tDO8uJCmB4zYSB7SBsh0yy7fZVFWvN6Lc
4v+OL87ocsN7GJPjbJ8N9JmVxfimLvM1Vy9oddBov7elD8aHl8lV4/s1LuhTUhip
aLtg9XoU9LBviyVGY8jQEr1Z8XF7YUfzIrcB7AlH5JAi4Ec2oxUVyFYj+I+DI8Pw
mLPD7TJJeWfOuhc04Sia3llNGKIiYS5aMZ2w7OE+DHruNwVBNrJyufDw6mh0F5WW
RgIuzhmX1WEKjsSamkK9zts5a5YNyxGlKdCdPzzHuZ0kBnlYqH3JQSpnbZaVtZch
OSS/DvLH10A6GCa7oQH/55aeDtdp6umzfXwF0tzkdzXwNvZ7UxfeiYX5UO6oxbuA
sHy4W8wGjdoDevHkhSv/RTZcxEfOUYjU75xEIYvyn+CNOZ1gwv9wyUTgpnVcjNuj
8uYwyPstPVd3oUNyW0w7tbw0krTm7LAsAorhMGw/jA/roePzgOt2Bv0FxA1HZ+d3
qoRfC1KNhBu+5Nw662o1
=D/o6
-----END PGP SIGNATURE-----

diff -uNr a/package/resiprocate/files/repro.config b/package/resiprocate/files/repro.config
--- a/package/resiprocate/files/repro.config	1970-01-01 01:00:00.000000000 +0100
+++ b/package/resiprocate/files/repro.config	2012-09-21 22:35:00.329305721 +0200
@@ -0,0 +1,677 @@
+########################################################
+# repro configuration file
+########################################################
+
+
+########################################################
+# Log settings
+########################################################
+
+# Logging Type: syslog|cerr|cout|file
+# Note:  Logging to cout can negatively effect performance.
+#        When repro is placed into production 'file' or 
+#        'syslog' should be used.
+LoggingType = syslog
+
+# Logging level: NONE|CRIT|ERR|WARNING|INFO|DEBUG|STACK
+LogLevel = INFO
+
+# Log Filename
+LogFilename = repro.log
+
+# Log file Max Bytes
+LogFileMaxBytes = 5242880
+
+
+########################################################
+# Transport settings
+########################################################
+
+# Local IP Address to bind SIP transports to. If left blank
+# repro will bind to all adapters.
+#IPAddress = 192.168.1.106
+#IPAddress = 2001:5c0:1000:a::6d
+IPAddress =
+
+# Local port to listen on for SIP messages over UDP - 0 to disable
+UDPPort = 5060
+
+# Local port to listen on for SIP messages over TCP - 0 to disable
+TCPPort = 5060
+
+# Local port to listen on for SIP messages over TLS - 0 to disable
+#TLSPort = 5061
+TLSPort = 0
+
+# Local port to listen on for SIP messages over DTLS - 0 to disable
+DTLSPort = 0
+
+# TLS domain name for this server (note: domain cert for this domain must be present)
+TLSDomainName =
+
+# Whether or not we ask for (Optional) or expect (Mandatory) TLS
+# clients to present a client certificate
+# Possible values:
+#  None: client can connect without any cert, if a cert is sent, it is not checked
+#  Optional: client can connect without any cert, if a cert is sent, it must be acceptable to us
+#  Mandatory: client can not connect without any cert, cert must be acceptable to us
+# How we decide if a cert is acceptable: it must meet two criteria:
+# 1. it must be signed by a CA that we trust (see CADirectory)
+# 2. the domain or full sip: URI in the cert must match the From: URI of all
+#    SIP messages coming from the peer
+TLSClientVerification = None
+
+# Whether we accept the subjectAltName email address as if it was a SIP
+# address (when checking the validity of a client certificate)
+# Very few commercial CAs offer support for SIP addresses in subjectAltName
+# For many purposes, an email address subjectAltName may be considered
+# equivalent within a specific domain.
+# Currently, this accepts such certs globally (for any incoming connection),
+# not just for connections from the local users.
+TLSUseEmailAsSIP = false
+
+# Alternate and more flexible method to specify transports to bind to.  If specified here
+# then IPAddress, and port settings above are ignored.
+# Transports MUST be numbered in sequential order, starting from 1.  Possible settings are:
+# Transport<Num>Interface = <IPAddress>:<Port>
+# Transport<Num>Type = <'TCP'|'UDP'|'TLS'|'DTLS'> - default is UDP if missing
+# Transport<Num>TlsDomain = <TLSDomain> - only required if transport is TLS or DTLS
+# Transport<Num>TlsClientVerification = <'None'|'Optional'|'Mandatory'> - default is None
+# Transport<Num>RecordRouteUri = <'auto'|URI> - if set to auto then record route URI
+#                                               is automatically generated from the other
+#                                               transport settings.  Otherwise explicity
+#                                               enter the full URI you want repro to use.
+#                                               Do not specify 'auto' if you specified
+#                                               the IPAddress as INADDR_ANY (0.0.0.0).
+#                                               If nothing is specified then repro will
+#                                               use the global RecordRouteUri setting.
+#
+# Transport<Num>RcvBufLen = <SocketReceiveBufferSize> - currently only applies to UDP transports,
+#                                                       leave empty to use OS default
+# Example:
+# Transport1Interface = 192.168.1.106:5060
+# Transport1Type = TCP
+# Transport1RecordRouteUri = auto
+#
+# Transport2Interface = 192.168.1.106:5060
+# Transport2Type = UDP
+# Transport2RecordRouteUri = auto
+# Transport2RcvBufLen = 10000
+#
+# Transport3Interface = 192.168.1.106:5061
+# Transport3Type = TLS
+# Transport3TlsDomain = sipdomain.com
+# Transport3TlsClientVerification = Mandatory
+# Transport3RecordRouteUri = sip:h1.sipdomain.com;transport=TLS
+
+
+# Comma separated list of DNS servers, overrides default OS detected list (leave blank 
+# for default)
+DNSServers =
+
+# Enable IPv6
+EnableIPv6 = false
+
+# Enable IPv4
+DisableIPv4 = false
+
+# Port on which to run the HTTP configuration interface and/or certificate server 
+# 0 to disable (default: 5080)
+HttpPort = 5080
+
+# disable HTTP challenges for web based configuration GUI
+DisableHttpAuth = false
+
+# Web administrator password
+HttpAdminPassword = admin
+
+# Port on which to listen for and send XML RPC messaging used in command processing 
+# 0 to disable (default: 5081)
+CommandPort = 5081
+
+# Port on which to listen for and send XML RPC messaging used in registration sync 
+# process - 0 to disable (default: 0)
+RegSyncPort = 0
+
+# Hostname/ip address of another instance of repro to synchronize registrations with 
+# (note xmlrpcport must also be specified)
+RegSyncPeer =
+
+
+########################################################
+# Misc settings
+########################################################
+
+# Must be true or false, default = false, not supported on Windows
+Daemonize = true
+
+# On UNIX it is normal to create a PID file
+# if unspecified, no attempt will be made to create a PID file
+PidFile = /var/run/repro/repro.pid
+
+# Path to load certificates from (default:  "$(HOME)/.sipCerts on *nix, and c:\sipCerts 
+# on windows)
+# Note that repro loads ALL root certificates found by the settings
+# CertificatePath, CADirectory and CAFile.  Setting one option does
+# not disable the other options.
+# Certificates in this location have to match one of the filename
+# patterns expected by the legacy reSIProcate SSL code:
+#   domain_cert_NAME.pem, root_cert_NAME.pem, ...
+CertificatePath = /etc/repro/ssl
+
+# Path to load root certificates from
+# Iff this directory is specified, all files in the directory
+# will be loaded as root certificates, prefixes and suffixes are
+# not considered
+# Note that repro loads ALL root certificates found by the settings
+# CertificatePath, CADirectory and CAFile.  Setting one option does
+# not disable the other options.
+# On Debian, the typical location is /etc/ssl/certs
+CADirectory = /etc/ssl/certs
+
+# Specify a single file containing one or more root certificates
+# and possible chain/intermediate certificates to be loaded
+# Iff this filename is specified, the certificates in the file will
+# be loaded as root certificates
+#
+# This does NOT currently support bundles of unrelated root certificates
+# stored in the same PEM file, it ONLY supports related/chained root
+# certificates.  If multiple roots must be supported, use the CADirectory
+# option.
+#
+# In the future, this behavior may change to load a bundle,
+# such as /etc/ssl/certs/ca-certificates.txt on Debian and
+# /etc/pki/tls/cert.pem on Red Hat/CentOS
+#
+# Note that repro loads ALL root certificates found by the settings
+# CertificatePath, CADirectory and CAFile.  Setting one option does
+# not disable the other options.
+#
+# This example loads just the CACert.org chain, which typically
+# includes the class 1 root and the class 3 root (signed by the class 1 root)
+#CAFile = /etc/ssl/certs/cacert.org.pem
+
+# The Path to read and write Berkely DB database files
+DatabasePath = /etc/repro/home
+
+# The hostname running MySQL server to connect to, leave blank to use BerkelyDB
+# The value of host may be either a host name or an IP address. If host is "localhost",
+# a connection to the local host is assumed. For Windows, the client connects using a
+# shared-memory connection, if the server has shared-memory connections enabled. Otherwise,
+# TCP/IP is used. For Unix, the client connects using a Unix socket file. For a host value of
+# "." on Windows, the client connects using a named pipe, if the server has named-pipe
+# connections enabled. If named-pipe connections are not enabled, an error occurs.
+# WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
+MySQLServer =
+
+# The MySQL login ID to use when connecting to the MySQL Server. If user is empty string "",
+# the current user is assumed. Under Unix, this is the current login name. Under Windows,
+# the current user name must be specified explicitly.
+MySQLUser = root
+
+# The password for the MySQL login ID specified.
+MySQLPassword = root
+
+# The database name on the MySQL server that contains the repro tables
+MySQLDatabaseName = repro
+
+# If port is not 0, the value is used as the port number for the TCP/IP connection. Note that
+# the host parameter determines the type of the connection.
+MySQLPort = 3306
+
+# The Users and MessageSilo database tables are different from the other repro configuration
+# database tables, in that they are accessed at runtime as SIP requests arrive.  It may be
+# desirable to use BerkeleyDb for the other repro tables (which are read at starup time, then
+# cached in memory), and MySQL for the runtime accessed tables; or two seperate MySQL instances
+# for these different table sets.  Use the following settings in order to specify a seperate
+# MySQL instance for use by the Users and MessageSilo tables.
+#
+# WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
+#
+# Note:  If this setting is left blank then repro will fallback all remaining my sql
+# settings to use the global MySQLServer settings.  If the MySQLServer setting is also
+# blank, then repro will use BerkelyDB for all configuration tables.  See the
+# documentation on the global MySQLServer settings for more details on the following
+# individual settings.
+RuntimeMySQLServer =
+RuntimeMySQLUser = root
+RuntimeMySQLPassword = root
+RuntimeMySQLDatabaseName = repro
+RuntimeMySQLPort = 3306
+
+# If you would like to be able to authenticate uses from a MySQL source other than the repro user
+# database table itself, then specify the query here.  The following conditions apply:
+# 1.  The database table must reside on the same MySQL server instance as the repro database
+#     or Runtime tables database.
+# 2.  The statement provided will be UNION'd with the hardcoded repro query, so that auth from
+#     both sources is possible.  Note:  If the same user exists in both tables, then the repro
+#     auth info will be used.
+# 3.  The provided SELECT statement must return the SIP A1 password hash of the user in question.
+# 4.  The provided SELECT statement must contain two tags embedded into the query: $user and $domain
+#     These tags should be used in the WHERE clause, and repro will replace these tags with the
+#     actual user and domain being queried.
+# Example:  SELECT sip_password_ha1 FROM directory.users WHERE sip_userid = '$user' AND 
+#           sip_domain = '$domain' AND account_status = 'active'
+MySQLCustomUserAuthQuery =
+
+# Run a Certificate Server - Allows PUBLISH and SUBSCRIBE for certificates
+EnableCertServer = false
+
+# Value of server header for local UAS responses
+ServerText =
+
+# Enables Congestion Management
+CongestionManagement = true
+
+# Congestion Management Metric - can take one of the following values:
+# SIZE : Based solely on the number of messages in each fifo
+# TIME_DEPTH : Based on the age of the oldest (front-most) message 
+#              in each fifo.
+# WAIT_TIME : Based on the expected wait time for each fifo; this is 
+#             calculated by multiplying the size by the average service time. 
+#             This is the recommended metric.
+CongestionManagementMetric = WAIT_TIME
+
+# Congestion Management Tolerance for the given metric.  This determines when the RejectionBehavior 
+# changes.
+# 0-80 percent of max tolerance -> NORMAL (Not rejecting any work.)
+# 80-100 percent of max tolerance -> REJECTING_NEW_WORK (Refuses new work, 
+#        not continuation of old work.)
+# >100 percent of max tolerance -> REJECTING_NON_ESSENTIAL (Rejecting all work 
+#      that is non-essential to the health of the system (ie, if dropping 
+#      something is liable to cause a leak, instability, or state-bloat, don't drop it. 
+#      Otherwise, reject it.)
+# Units specified are dependent on Metric specified above:
+#  If Metric is SIZE then units are number of messages
+#  If Metric is TIME_DEPTH then units are the number seconds old the oldest message is
+#  If Metric is WAIT_TIME then units are the expected wait time of each fifo in milliseconds
+CongestionManagementTolerance = 200
+
+# Specify the number of seconds between writes of the stack statistics block to the log files.
+# Specifying 0 will disable the statistics collection entirely.  If disabled the statistics
+# also cannot be retreived using the reprocmd interface.
+StatisticsLogInterval = 3600
+
+# Use MultipleThreads stack processing.
+ThreadedStack = true
+
+# The number of worker threads used to asynchronously retrieve user authentication information
+# from the database store.
+NumAuthGrabberWorkerThreads = 2
+
+# The number of worker threads in Async Processor tread pool.  Used by all Async Processors
+# (ie. RequestFilter)
+NumAsyncProcessorWorkerThreads = 2
+
+# Specify domains for which this proxy is authorative (in addition to those specified on web
+# interface) - comma separate list
+# Notes: * Domains specified here cannot be used when creating users, domains used in user
+#          AORs must be specified on the web interface.
+#        * In previous versions of repro, localhost, 127.0.0.1, the machine's hostname,
+#          and all interface addresses would automatically be appended to this
+#          configuration parameter.  From now on, such values must be listed
+#          here explicitly if required, e.g.
+#
+#             Domains = localhost, 127.0.0.1, sip-server.example.org, 10.83.73.80
+#
+#          although when using TLS only, it is not desirable or necessary to
+#          add such values.
+#
+Domains =
+
+# Uri to use as Record-Route
+RecordRouteUri =
+
+# Force record-routing
+# WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
+# the alternate transport specification mechanism and defining a RecordRouteUri per
+# transport: TransportXRecordRouteUri
+ForceRecordRouting = false
+
+# Assume path option
+AssumePath = false
+
+# Disable registrar
+DisableRegistrar = false
+
+# Specify a comma separate list of enum suffixes to search for enum dns resolution
+EnumSuffixes =
+
+# Specify the target domain(s) for ENUM logic support.  When a dialed SIP URI
+# is addressed to +number@somedomain,
+# where somedomain is an element of EnumDomains,
+# the ENUM logic will be applied for the number
+# If empty, ENUM is never used
+EnumDomains =
+
+# Specify length of timer C in sec (0 or negative will disable timer C) - default 180
+TimerC = 180
+
+# Override the default value of T1 in ms (you probably should not change this) - leave 
+# as 0 to use default of 500ms)
+TimerT1 = 0
+
+# Disable outbound support (RFC5626)
+# WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
+# the alternate transport specification mechanism and defining a RecordRouteUri per
+# transport: TransportXRecordRouteUri
+DisableOutbound = true
+
+# Set the draft version of outbound to support (default: RFC5626)
+# Other accepted values are the versions of the IETF drafts, before RFC5626 was issued
+# (ie. 5, 8, etc.)
+OutboundVersion = 5626
+
+# There are cases where the first hop in a particular network supports the concept of outbound
+# and ensures all messaging for a client is delivered over the same connection used for
+# registration.  This could be a SBC or other NAT traversal aid router that uses the Path
+# header.  However such endpoints may not be 100% compliant with outbound RFC and may not
+# include a ;ob parameter in the path header.  This parameter is required in order for repro
+# to have knowledge that the first hop does support outbound, and it will reject registrations
+# that appear to be using outboud (ie. instanceId and regId) with a 439 (First Hop Lacks Outbound
+# Support).  In this case it can be desirable when using repro as the registrar to not reject
+# REGISTRATION requests that contain an instanceId and regId with a 439.
+# If this setting is enabled, then repro will assume the first hop supports outbound
+# and not return this error.
+AssumeFirstHopSupportsOutbound = false
+
+# Enable use of flow-tokens in non-outbound cases
+# WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
+# the alternate transport specification mechanism and defining a RecordRouteUri per
+# transport: TransportXRecordRouteUri
+EnableFlowTokens = false
+
+# Enable use of flow-tokens in non-outbound cases for clients detected to be behind a NAT.  
+# This a more selective flow token hack mode for clients not supporting RFC5626.  The 
+# original flow token hack (EnableFlowTokens) will use flow tokens on all client requests.  
+# Possible values are:  DISABLED, ENABLED and PRIVATE_TO_PUBLIC.
+# WARNING: Before enabling this, ensure you have a RecordRouteUri setup, or are using
+# the alternate transport specification mechanism and defining a RecordRouteUri per
+# transport: TransportXRecordRouteUri
+ClientNatDetectionMode = DISABLED
+
+# Set to greater than 0 to enable addition of Flow-Timer header to REGISTER responses if 
+# outbound is enabled (default: 0)
+FlowTimer = 0
+
+
+########################################################
+# CertificateAuthenticator Monkey Settings
+########################################################
+
+# Enables certificate authenticator - note you MUST use a TlsTransport
+# with TlsClientVerification set to Optional or Mandatory.
+# There are two levels of checking:
+# a) cert must be signed by a CA trusted by the stack
+# b) the CN or one of the subjectAltName values must match the From:
+#    header of each SIP message on the TlsConnection
+# Examples:
+# Cert 1:
+#    common name = dan...@pocock.com.au
+#    => From: <dan...@pocock.com.au> is the only value that will pass
+# Cert 2:
+#    subjectAltName = pocock.com.au
+#    => From: <<anything>@pocock.com.au> will be accepted
+# Typically, case 1 is for a real client connection (e.g. Jitsi), case 2
+# (whole domain) is for federated SIP proxy-to-proxy communication (RFC 5922)
+EnableCertificateAuthenticator = false
+
+# A static text file that contains mappings of X.509 Common Names to
+# permitted SIP `From:' addresses
+#
+# Without this file, the default behavior of the CertificateAuthenticator
+# ensures that the `From:' address in SIP messages must match the
+# Common Name or one of the subjectAltNames from the X.509 certificate
+#
+# When this file is supplied, the CertificateAuthenticator will continue
+# to allow SIP messages where there is an exact match between the
+# certificate and the `From:' address, but it will also allow
+# the holder of a particular certificate to use any of the `mapped'
+# `From:' addresses specified in the mappings file
+#
+# File format:
+# common name<TAB><mapping>,<mapping>,...
+#
+#    where:
+#        <TAB> is exactly one tab
+#        <mapping> is `user@domain' or just `domain'
+#
+CommonNameMappings = /etc/repro/tlsUserMappings.txt
+
+
+########################################################
+# DigestAuthenticator Monkey Settings
+########################################################
+
+# Disable DIGEST challenges - disables this monkey
+DisableAuth = false
+
+# Http hostname for this server (used in Identity headers)
+HttpHostname =
+
+# Disable adding identity headers
+DisableIdentity = false
+
+# Enable addition and processing of P-Asserted-Identity headers
+EnablePAssertedIdentityProcessing = false
+
+# Disable auth-int DIGEST challenges
+DisableAuthInt = false
+
+# Send 403 if a client sends a bad nonce in their credentials (will send a new 
+# challenge otherwise)
+RejectBadNonces = false
+
+# allow To tag in registrations
+AllowBadReg = false
+
+
+########################################################
+# RequestFilter Monkey Settings
+########################################################
+
+# Disable RequestFilter monkey processing
+DisableRequestFilterProcessor = false
+
+# Default behavior for when no matching filter is found.  Leave empty to allow 
+# request processing to continue.  Otherwise set to a SIP status error code
+# (400-699) that should be used to reject the request (ie. 500, Server Internal
+# Error).
+# The status code can optionally be followed by a , and SIP reason text.
+RequestFilterDefaultNoMatchBehavior =
+
+# Default behavior for SQL Query db errors.  Leave empty to allow request processing
+# to continue.  Otherwise set to a SIP status error code (400-699) that should be  
+# used to reject the request (ie. 500 - Server Internal Error).
+# The status code can optionally be followed by a , and SIP reason text.
+# Note: DB support for this action requires MySQL support.
+RequestFilterDefaultDBErrorBehavior = 500, Server Internal DB Error
+
+# The hostname running MySQL server to connect to for any blocked entries
+# that are configured to used a SQL statement.
+# WARNING: repro must be compiled with the USE_MYSQL flag in order for this work.
+#
+# Note:  If this setting is left blank then repro will fallback all remaining my sql
+# settings to use the global RuntimeMySQLServer or MySQLServer settings.  See the
+# documentation on the global MySQLServer settings for more details on the following
+# individual settings.
+RequestFilterMySQLServer =
+
+# The MySQL login ID to use when connecting to the MySQL Server. 
+# Note:  If the RequestFilterMySQLServer setting is left blank then repro will fallback to 
+# using the global MySQL settings.
+RequestFilterMySQLUser = root
+
+# The password for the MySQL login ID specified.
+# Note:  If the RequestFilterMySQLServer setting is left blank then repro will fallback to 
+# using the global MySQL settings.
+RequestFilterMySQLPassword = root
+
+# The database name on the MySQL server that contains the repro tables
+# Note:  If the RequestFilterMySQLServer setting is left blank then repro will fallback to 
+# using the global MySQL settings.
+RequestFilterMySQLDatabaseName = 
+
+# If port is not 0, the value is used as the port number for the TCP/IP connection. Note that
+# the host parameter determines the type of the connection.
+# Note:  If the RequestFilterMySQLServer setting is left blank then repro will fallback to 
+# using the global MySQL settings.
+RequestFilterMySQLPort = 3306
+
+
+########################################################
+# StaticRoute Monkey Settings
+########################################################
+
+# Specify where to route requests that are in this proxy's domain - disables the 
+# routes in the web interface and uses a SimpleStaticRoute monkey instead.
+# A comma seperated list of routes can be specified here and each route will
+# be added to the outbound Requests with the RequestUri left in tact.
+Routes =
+
+# Parallel fork to all matching static routes
+ParallelForkStaticRoutes = false
+
+# By default (false) we will stop looking for more Targets if we have found
+# matching routes.  Setting this value to true will allow the LocationServer Monkey
+# to run after StaticRoutes have been found.  In this case the matching
+# StaticRoutes become fallback targets, processed only after all location server 
+# targets fail.
+ContinueProcessingAfterRoutesFound = false
+
+
+########################################################
+# Message Silo Monkey Settings
+########################################################
+
+# Specify where the Message Silo is enabled or not.  If enabled,
+# then repro will store MESSAGE requests for users that are not online.
+# When the user is back online (ie. registers with repro), the stored 
+# messages will be delivered.
+MessageSiloEnabled = false
+
+# A regular expression that can be used to filter which URI's not to
+# do message storage (siloing) for.  Destination/To URI's matching
+# this regular expression will not be silo'd.
+MessageSiloDestFilterRegex =
+
+# A regular expression that can be used to filter which body/content/mime
+# types not to do message storage (siloing) for.  Content-Type's matching
+# this regular expression will not be silo'd.
+MessageSiloMimeTypeFilterRegex = application\/im\-iscomposing\+xml
+
+# The number of seconds a message request will be stored in the message silo.
+# Messages older than this time, are candidates for deletion.  
+# Default (259200 seconds = 30 days)
+MessageSiloExpirationTime = 2592000
+
+# Flag to indicate if a Date header should be added to replayed SIP 
+# MESSAGEs from the silo, when a user registers.
+MessageSiloAddDateHeader = true
+
+# Defines the maximum message content length (bytes) that will be stored in
+# the message silo.  Messages with a Content-Length larger than this 
+# value will be discarded.
+# WARNING:  Do not increasing this value beyond the capabilities of the
+# database storage or internal buffers.
+# Note: AbstractDb uses a read buffer size of 8192 - do not exceed this size.
+MessageSiloMaxContentLength = 4096
+
+# The status code returned to the sender when a messages is successfully
+# silo'd.
+MessageSiloSuccessStatusCode = 202
+
+# The status code returned to the sender when a messages mime-type matches
+# the MessageSiloMimeTypeFilterRegex.  Can be used to avoid sending errors
+# to isComposing mime bodies that don't need to be silod.  Set to 0 to use
+# repro standard response (ie. 480).
+MessageSiloFilteredMimeTypeStatusCode = 200
+
+# The status code returned to the sender when a messages is not silo'd due
+# to the MaxContentLength being exceeded.
+MessageSiloFailureStatusCode = 480
+
+
+########################################################
+# Recursive Redirect Lemur Settings
+########################################################
+
+# Handle 3xx responses in the proxy - enables the Recursive Redirect Lemur
+RecursiveRedirect = false
+
+
+########################################################
+# Geo Proximity Target Sorter Baboon Settings
+########################################################
+
+# If enabled, then this baboon can post-process the target list.  
+# This includes targets from the StaticRoute monkey and/or targets
+# from the LocationServer monkey.  Requests that meet the filter 
+# criteria will have their Target list, flatened (serialized) and
+# ordered based on the proximity of the target to the client sending
+# the request.  Proximity is determined by looking for a 
+# x-repro-geolocation="<latitude>,<longitude>" parameter on the Contact
+# header of a received request, or the Contact headers of Registration
+# requests.  If this parameter is not found, then this processor will
+# attempt to determine the public IP address closest to the client or
+# target and use the MaxMind Geo IP library to lookup the geo location.
+GeoProximityTargetSorting = false
+
+# Specify the full path to the IPv4 Geo City database file
+# Note:  A free version of the database can be downloaded from here:
+# http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
+# For a more accurate database, please see the details here:
+# http://www.maxmind.com/app/city
+GeoProximityIPv4CityDatabaseFile = GeoLiteCity.dat
+
+# Specify the full path to the IPv6 Geo City database file
+# Note:  A free version of the database can be downloaded from here:
+# http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/
+# For a more accurate database, please see the details here:
+# http://www.maxmind.com/app/city
+# Leave blank to disable V6 lookups.  Saves memory (if not required).
+#GeoProximityIPv6CityDatabaseFile = GeoLiteCityv6.dat
+GeoProximityIPv6CityDatabaseFile =
+
+# This setting specifies a PCRE compliant regular expression to attempt
+# to match against the request URI of inbound requests.  Any requests
+# matching this expression, will have its Targets sorted as described
+# above.  Leave blank to match all requests.
+GeoProximityRequestUriFilter = ^sip:mediaserver.*@mydomain.com$
+
+# The distance (in Kilometers) to use for proximity sorting, when the 
+# Geo Location of a target cannot be determined. 
+GeoProximityDefaultDistance = 0
+
+# If enabled, then targets that are determined to be of equal distance
+# from the client, will be placed in a random order.
+LoadBalanceEqualDistantTargets = true
+
+
+########################################################
+# Q-Value Target Handler Baboon Settings
+########################################################
+
+# Enable sequential q-value processing - enables the Baboon
+QValue = true
+
+# Specify forking behavior for q-value targets: FULL_SEQUENTIAL, EQUAL_Q_PARALLEL, 
+# or FULL_PARALLEL
+QValueBehavior = EQUAL_Q_PARALLEL
+
+# Whether to cancel groups of parallel forks after the period specified by the 
+# QValueMsBeforeCancel parameter.
+QValueCancelBetweenForkGroups = true
+
+# msec to wait before cancelling parallel fork groups when QValueCancelBetweenForkGroups
+# is true
+QValueMsBeforeCancel = 30000
+
+# Whether to wait for parallel fork groups to terminate before starting new fork-groups.
+QValueWaitForTerminateBetweenForkGroups = true
+
+# msec to wait before starting new groups of parallel forks when 
+# QValueWaitForTerminateBetweenForkGroups is false
+QValueMsBetweenForkGroups = 3000
+
+
diff -uNr a/package/resiprocate/files/repro.init b/package/resiprocate/files/repro.init
--- a/package/resiprocate/files/repro.init	1970-01-01 01:00:00.000000000 +0100
+++ b/package/resiprocate/files/repro.init	2012-09-21 22:34:45.921917541 +0200
@@ -0,0 +1,20 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2012 Daniel Pocock <dan...@pocock.com.au>
+
+START=80
+STOP=20
+
+SERVICE_USE_PID=1
+
+start() {
+	group_exists repro 123 || group_add repro 123
+        user_exists repro 123 || user_add repro 123 123 repro /etc/repro/home
+        mkdir -p /etc/repro/home
+        chown -R repro:repro /etc/repro/home
+        service_start /usr/sbin/repro --Daemonize=true --LoggingType=syslog --PidFile=/var/run/repro.pid
+}
+
+stop() {
+	service_stop /usr/sbin/repro
+}
+
diff -uNr a/package/resiprocate/files/reTurnServer.config b/package/resiprocate/files/reTurnServer.config
--- a/package/resiprocate/files/reTurnServer.config	1970-01-01 01:00:00.000000000 +0100
+++ b/package/resiprocate/files/reTurnServer.config	2012-09-21 20:30:01.181011516 +0200
@@ -0,0 +1,33 @@
+TurnPort = 3478
+TlsTurnPort = 5349
+AltStunPort = 0
+TurnAddress = 0.0.0.0
+AltStunAddress = 0.0.0.0
+AuthenticationMode = 2
+AuthenticationRealm = reTurn
+NonceLifetime = 3600
+AllocationPortRangeMin = 49152
+AllocationPortRangeMax = 65535
+DefaultAllocationLifetime = 600
+MaxAllocationLifetime = 3600
+MaxAllocationsPerUser = 0
+TlsServerCertificateFilename = server.pem
+TlsTempDhFilename = dh512.pem
+# leave blank if key is not encrypted
+#TlsPrivateKeyPassword = 
+# Logging Type: syslog|cerr|cout|file
+LoggingType = syslog
+# Logging level: NONE|CRIT|ERR|WARNING|INFO|DEBUG|STACK
+LoggingLevel = INFO
+LogFilename = reTurnServer.log
+LogFileMaxLines = 50000
+# It is highly recommended that these values are NOT left at their
+# default setting
+LongTermAuthUsername = test
+LongTermAuthPassword = 1234
+# Must be true or false, default = false, not supported on Windows
+Daemonize = true
+# On UNIX it is normal to create a PID file
+# if unspecified, no attempt will be made to create a PID file
+#PidFile = /var/run/reTurnServer/reTurnServer.pid
+
diff -uNr a/package/resiprocate/files/reTurnServer.init b/package/resiprocate/files/reTurnServer.init
--- a/package/resiprocate/files/reTurnServer.init	1970-01-01 01:00:00.000000000 +0100
+++ b/package/resiprocate/files/reTurnServer.init	2012-09-21 20:34:41.573152382 +0200
@@ -0,0 +1,20 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2012 Daniel Pocock <dan...@pocock.com.au>
+
+START=80
+STOP=20
+
+SERVICE_USE_PID=1
+
+start() {
+	group_exists return 123 || group_add return 123
+        user_exists return 123 || user_add return 123 123 return /var/lib/return
+        mkdir -p /var/lib/return
+        chown -R return:return /var/lib/return
+        service_start /usr/sbin/reTurnServer --Daemonize=true --LoggingType=syslog --PidFile=/var/run/reTurnServer.pid
+}
+
+stop() {
+	service_stop /usr/sbin/reTurnServer
+}
+
diff -uNr a/package/resiprocate/Makefile package/resiprocate/Makefile
--- a/package/resiprocate/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ package/resiprocate/Makefile	2012-09-21 22:36:31.937415703 +0200
@@ -0,0 +1,108 @@
+#
+# Copyright (C) 2012 OpenWrt.org
+# Copyright (C) 2012 Daniel Pocock <dan...@pocock.com.au>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=resiprocate
+PKG_VERSION:=1.8.12
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/resiprocate-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://www.resiprocate.org/files/pub/reSIProcate/releases/
+PKG_MD5SUM:=d0f12790916e109d8c1a185c98e9e5be
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=+libasio
+
+include $(INCLUDE_DIR)/package.mk
+
+#TARGET_CFLAGS += $(FPIC)
+TARGET_LDFLAGS += -lcrypto
+
+define Package/resiprocate/Default
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Telephony
+  DEFAULT:=m
+  TITLE:=reSIProcate
+  URL:=http://www.resiprocate.org/
+  DEPENDS:=+libopenssl +libdb47 +libcares +boost +libstdcpp
+endef
+
+define Package/libresiprocate
+$(call Package/resiprocate/Default)
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE+= libraries
+endef
+
+define Package/repro
+$(call Package/resiprocate/Default)
+  TITLE+= repro SIP proxy
+  DEPENDS+= +libresiprocate
+endef
+
+define Package/resiprocate-turn-server
+$(call Package/resiprocate/Default)
+  TITLE+= repro TURN server (reTurn)
+  DEPENDS+= +libresiprocate
+endef
+
+define Package/resiprocate/description
+ SIP stack, proxy, ICE/STUN/TURN implementation
+endef
+
+define Package/repro/conffiles
+/etc/repro/repro.config
+endef
+
+define Package/resiprocate-turn-server/conffiles
+/etc/reTurnServer.config
+endef
+
+define Build/Configure
+	$(call Build/Configure/Default, --enable-shared --disable-static --with-ssl --with-c-ares )
+endef
+
+define Build/Compile
+        $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)
+endef
+
+define Package/libresiprocate/install
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/librutil*.so* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libresip*.so* $(1)/usr/lib/
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdum*.so* $(1)/usr/lib/
+endef
+
+define Package/repro/install
+	$(INSTALL_DIR) $(1)/usr/sbin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/repro/repro $(1)/usr/sbin/
+	$(INSTALL_DIR) $(1)/usr/lib
+	$(CP) $(PKG_INSTALL_DIR)/usr/lib/librepro*.so* $(1)/usr/lib/
+	$(INSTALL_DIR) $(1)/etc/repro/ssl
+	$(INSTALL_CONF) ./files/repro.config $(1)/etc/repro/
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/repro.init $(1)/etc/init.d/repro
+endef
+
+define Package/resiprocate-turn-server/install
+	$(INSTALL_DIR) $(1)/usr/sbin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/reTurn/reTurnServer $(1)/usr/sbin/
+	$(INSTALL_CONF) ./files/reTurnServer.config $(1)/etc/
+	$(INSTALL_DIR) $(1)/etc/init.d
+	$(INSTALL_BIN) ./files/reTurnServer.init $(1)/etc/init.d/reTurnServer
+endef
+
+$(eval $(call BuildPackage,libresiprocate))
+$(eval $(call BuildPackage,repro))
+$(eval $(call BuildPackage,resiprocate-turn-server))
+
+

Attachment: resip-openwrt2.diff.sig
Description: PGP signature

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to