Skip to content

Commit

Permalink
Merge branch 'master' into asr
Browse files Browse the repository at this point in the history
* master: (213 commits)
  Update Restcomm - Docker Quick Start Guide.adoc
  Update Restcomm - Docker Quick Start Guide.adoc
  Update Restcomm - Docker Quick Start Guide.adoc
  change port 80 to 8080
  manage the version of license-maven-plugin
  removed link of png files from organization index doc
  added componnet diagram
  DateTime added at MonitoringService response This close #2491
  Added some bullets in organization documentation
  Push Notification Server configuration
  HttpClient lazy initialization
  Fixed #2467: Update iOS quick start guide asciidoc to be in sync with latest release
  Fixed broken link to contributors guide
  added debug logging to push notification server interaction method
  added debug logging to push notification server interaction method
  Added explanation/comment to restcomm.xml - response-timeout
  added some more documentation
  Fix dynamic log level change.
  Push server HTTP request Content-Type is "application/json"
  updated hostname
  ...
  • Loading branch information
Maria Farooq committed Sep 12, 2017
2 parents b949565 + e3d28ea commit df89547
Show file tree
Hide file tree
Showing 187 changed files with 4,948 additions and 1,749 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Read the [Online RestComm Documentation](http://documentation.telestax.com/conne

Want to Contribute ?
========
[See our Contributors Guide](https://github.com/RestComm/RestComm-Connect/CONTRIBUTING.asciidoc) and [How to build RestComm From Source](http://docs.telestax.com/restcomm-mobicents-building-from-source/) and [![Join the chat at https://gitter.im/RestComm/Restcomm-Connect](https://badges.gitter.im/RestComm/Restcomm-Connect.svg)](https://gitter.im/RestComm/Restcomm-Connect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[See our Contributors Guide](CONTRIBUTING.asciidoc) and [How to build RestComm From Source](http://docs.telestax.com/restcomm-mobicents-building-from-source/) and [![Join the chat at https://gitter.im/RestComm/Restcomm-Connect](https://badges.gitter.im/RestComm/Restcomm-Connect.svg)](https://gitter.im/RestComm/Restcomm-Connect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)


Issue Tracking and Roadmap
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,7 @@ configure_RC_logs(){
config_on_thefly(){
FILE=$RESTCOMM_BIN/restcomm/set-log-level.sh
MNGMTPORT=$((9999 + PORT_OFFSET))
if [ -n "$GRAYLOG_SERVER" ]; then
sed -i "s|jboss-cli.sh --connect controller=.*|jboss-cli.sh --connect controller=$BIND_ADDRESS:${MNGMTPORT} --file=\"\$CLIFILE\"|" $FILE
else
sed -i "s|jboss-cli.sh --connect controller=.*|jboss-cli.sh --connect controller=127.0.0.1:${MNGMTPORT} --file=\"\$CLIFILE\"|" $FILE
fi
sed -i "s|jboss-cli.sh --connect controller=.*|jboss-cli.sh --connect controller=$BIND_ADDRESS:${MNGMTPORT} --file=\"\$CLIFILE\"|" $FILE
}

config_AKKA_logs(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,15 @@ configOutboundProxy(){
-e "s|<outbound-proxy-password>.*<\/outbound-proxy-password>|<outbound-proxy-password>$OUTBOUND_PROXY_PASSWORD<\/outbound-proxy-password>|" $FILE > $FILE.bak;
mv $FILE.bak $FILE
}

## Description: Push notification server configuration.
configPushNotificationServer() {
echo "Configure push-notification-server"
FILE=$RESTCOMM_DEPLOY/WEB-INF/conf/restcomm.xml
sed -e "s|<push-notification-server-enabled>.*<\/push-notification-server-enabled>|<push-notification-server-enabled>$PUSH_NOTIFICATION_SERVER_ENABLED<\/push-notification-server-enabled>|" \
-e "s|<push-notification-server-url>.*<\/push-notification-server-url>|<push-notification-server-url>$PUSH_NOTIFICATION_SERVER_URL<\/push-notification-server-url>|" \
-e "s|<push-notification-server-delay>.*<\/push-notification-server-delay>|<push-notification-server-delay>$PUSH_NOTIFICATION_SERVER_DELAY<\/push-notification-server-delay>|" $FILE > $FILE.bak;
mv $FILE.bak $FILE
}
## Description: Configures Voip Innovations Credentials
## Parameters : 1.Login
## 2.Password
Expand Down Expand Up @@ -675,6 +683,7 @@ configRestCommURIs
updateRecordingsPath
configHypertextPort
configOutboundProxy
configPushNotificationServer
otherRestCommConf
confRcmlserver
confRVD
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ OUTBOUND_PROXY='' #Provide port if different than 5060
OUTBOUND_PROXY_USERNAME=''
OUTBOUND_PROXY_PASSWORD=''

# Push notification server
PUSH_NOTIFICATION_SERVER_ENABLED=false
PUSH_NOTIFICATION_SERVER_URL=''
PUSH_NOTIFICATION_SERVER_DELAY=''

# Outbound proxy for SMS
SMS_PREFIX='#' #For VoipInnovation you will need the '#' character for SMS Prefix
SMS_OUTBOUND_PROXY='' #Please provide port if different than 5060
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ startRestcomm() {
echo "MGMT_PASS, MGMT_USER is set will be added to MGMNT configuration"
grep -q "$MGMT_USER" $RESTCOMM_HOME/standalone/configuration/mgmt-users.properties || $RESTCOMM_HOME/bin/add-user.sh "$MGMT_USER" "$MGMT_PASS" -s
#Management bind address
if [ -n "$GRAYLOG_SERVER" ]; then
ExtraOpts="-Djboss.bind.address.management=$bind_address"
fi
fi

case $run_mode in
Expand Down
6 changes: 6 additions & 0 deletions restcomm/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,12 @@
</execution>
</executions>
</plugin>
<!-- Manage version of license-maven-plugin here -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>1.13</version>
</plugin>
</plugins>
<pluginManagement>
<plugins>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,37 @@
package org.restcomm.connect.application;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.actor.UntypedActorFactory;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Properties;

import javax.media.mscontrol.MsControlException;
import javax.media.mscontrol.MsControlFactory;
import javax.media.mscontrol.spi.Driver;
import javax.media.mscontrol.spi.DriverManager;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.sip.SipServlet;
import javax.servlet.sip.SipServletContextEvent;
import javax.servlet.sip.SipServletListener;
import javax.servlet.sip.SipURI;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.mobicents.servlet.sip.SipConnector;
import org.restcomm.connect.application.config.ConfigurationStringLookup;
import org.restcomm.connect.commons.Version;
import org.restcomm.connect.commons.configuration.RestcommConfiguration;
import org.restcomm.connect.commons.dao.Sid;
import org.restcomm.connect.commons.loader.ObjectFactory;
import org.restcomm.connect.commons.loader.ObjectInstantiationException;
import org.restcomm.connect.commons.util.DNSUtils;
import org.restcomm.connect.dao.DaoManager;
import org.restcomm.connect.dao.entities.InstanceId;
import org.restcomm.connect.dao.entities.Organization;
import org.restcomm.connect.dao.entities.shiro.ShiroResources;
import org.restcomm.connect.extension.controller.ExtensionBootstrapper;
import org.restcomm.connect.identity.IdentityContext;
Expand All @@ -29,26 +41,21 @@
import org.restcomm.connect.mscontrol.api.MediaServerInfo;
import org.restcomm.connect.mscontrol.jsr309.Jsr309ControllerFactory;
import org.restcomm.connect.mscontrol.mms.MmsControllerFactory;
import scala.concurrent.ExecutionContext;

import javax.media.mscontrol.MsControlException;
import javax.media.mscontrol.MsControlFactory;
import javax.media.mscontrol.spi.Driver;
import javax.media.mscontrol.spi.DriverManager;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.sip.SipServlet;
import javax.servlet.sip.SipServletContextEvent;
import javax.servlet.sip.SipServletListener;
import javax.servlet.sip.SipURI;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Properties;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.actor.UntypedActorFactory;
import scala.concurrent.ExecutionContext;

/**
*
* @author <a href="mailto:gvagenas@gmail.com">gvagenas</a>
* @author maria-farooq@live.com (Maria Farooq)
*
*/

Expand Down Expand Up @@ -117,7 +124,7 @@ private MediaServerInfo mediaServerInfo(final Configuration configuration) throw
final String address = configuration.getString("media-server.address");
final int port = configuration.getInt("media-server.port");
final int timeout = configuration.getInt("media-server.timeout", 5);
return new MediaServerInfo(name, InetAddress.getByName(address), port, timeout);
return new MediaServerInfo(name, DNSUtils.getByName(address), port, timeout);
}

private Properties getDialogicXmsProperties(final Configuration configuration) {
Expand Down Expand Up @@ -239,6 +246,38 @@ private String uri(final ServletContext context) {
return context.getContextPath();
}

/**
* generateDefaultDomainName based on RC hostname
* https://github.com/RestComm/Restcomm-Connect/issues/2085
* @param configuration
* @param storage
*/
private boolean generateDefaultDomainName (final Configuration configuration, final DaoManager storage) {
try{
final Sid defaultOrganization = new Sid("ORafbe225ad37541eba518a74248f0ac4c");
final String hostname = configuration.getString("hostname");

if(hostname != null && !hostname.trim().equals("")){
if(logger.isInfoEnabled())
logger.info("Generate Default Domain Name based on RC hostname: "+hostname);
}else{
logger.error("Unable to generateDefaultDomainName hostname property is null in restcomm.xml");
return false;
}

Organization organization = storage.getOrganizationsDao().getOrganization(defaultOrganization);
if(organization == null){
storage.getOrganizationsDao().addOrganization(new Organization(defaultOrganization, hostname, DateTime.now(), DateTime.now()));
}else{
organization = organization.setDomainName(hostname);
storage.getOrganizationsDao().updateOrganization(organization);
}
}catch(Exception e){
logger.error("Unable to generateDefaultDomainName {}", e);
return false;
}
return true;
}
@Override
public void servletInitialized(SipServletContextEvent event) {
if (event.getSipServlet().getClass().equals(Bootstrapper.class)) {
Expand Down Expand Up @@ -277,6 +316,8 @@ public void servletInitialized(SipServletContextEvent event) {
}
xml.setProperty("runtime-settings.home-directory", home(context));
xml.setProperty("runtime-settings.root-uri", uri(context));
// initialize DnsUtilImpl ClassName
DNSUtils.initializeDnsUtilImplClassName(xml);
// Create high-level restcomm configuration
RestcommConfiguration.createOnce(xml);
context.setAttribute(Configuration.class.getName(), xml);
Expand Down Expand Up @@ -368,9 +409,17 @@ public void servletInitialized(SipServletContextEvent event) {
} catch (UnknownHostException e) {
logger.error("UnknownHostException during the generation of InstanceId: "+e);
}

context.setAttribute(InstanceId.class.getName(), instanceId);
monitoring.tell(instanceId, null);
RestcommConfiguration.getInstance().getMain().setInstanceId(instanceId.getId().toString());

if(!generateDefaultDomainName(xml.subset("http-client"), storage)){
logger.error("Unable to generate DefaultDomainName, Restcomm Akka system will exit now...");
system.shutdown();
system.awaitTermination();
}

// https://github.com/RestComm/Restcomm-Connect/issues/1285 Pass InstanceId to the Load Balancer for LCM stickiness
SipConnector[] connectors = (SipConnector[]) context.getAttribute("org.mobicents.servlet.sip.SIP_CONNECTORS");
Properties loadBalancerCustomInfo = new Properties();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ public int updateIncomingPhoneNumbers(String applicationSid, String projectName)
did.getUssdFallbackMethod(), did.getUssdApplicationSid(),
did.getReferUrl(), did.getReferMethod(), did.getReferApplicationSid(),
did.isVoiceCapable(),
did.isSmsCapable(), did.isMmsCapable(), did.isFaxCapable(), did.isPureSip());
did.isSmsCapable(), did.isMmsCapable(), did.isFaxCapable(), did.isPureSip(), did.getOrganizationSid());
didsDao.updateIncomingPhoneNumber(updateSmsDid);
dids.set(i, updateSmsDid);
amountUpdated++;
Expand All @@ -367,7 +367,7 @@ public int updateIncomingPhoneNumbers(String applicationSid, String projectName)
did.getUssdFallbackUrl(), did.getUssdFallbackMethod(), ussdApplicationSid,
did.getReferUrl(), did.getReferMethod(), did.getReferApplicationSid(),
did.isVoiceCapable(), did.isSmsCapable(), did.isMmsCapable(), did.isFaxCapable(),
did.isPureSip());
did.isPureSip(), did.getOrganizationSid());
didsDao.updateIncomingPhoneNumber(updateUssdDid);
dids.set(i, updateUssdDid);
amountUpdated++;
Expand All @@ -389,7 +389,7 @@ public int updateIncomingPhoneNumbers(String applicationSid, String projectName)
did.getUssdFallbackUrl(), did.getUssdFallbackMethod(), did.getUssdApplicationSid(),
did.getReferUrl(), did.getReferMethod(), did.getReferApplicationSid(),
did.isVoiceCapable(), did.isSmsCapable(), did.isMmsCapable(), did.isFaxCapable(),
did.isPureSip());
did.isPureSip(), did.getOrganizationSid());
didsDao.updateIncomingPhoneNumber(updateVoiceDid);
dids.set(i, updateVoiceDid);
amountUpdated++;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,6 @@
<mapper url="file://${sql}/media-resource-broker-entity.xml"/>
<mapper url="file://${sql}/extensions-configuration.xml"/>
<mapper url="file://${sql}/geolocation.xml"/>
<mapper url="file://${sql}/organization.xml"/>
</mappers>
</configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,8 @@
<timeout>5</timeout>
</media-server>
</mscontrol>
<!-- dns-util specifies a class that will be used for implementation of ip resolution. -->
<dns-util class="java.net.InetAddress"/>

<!-- The media server manager is responsible for managing the media servers
in use by RestComm. The default way to control media servers is using the
Expand Down Expand Up @@ -522,6 +524,10 @@
</media-server-manager>
<!-- Adjust http client behaviour for outgoing requests -->
<http-client>
<!--
Timeout setting in millis for most outgoing http requests including those for RCML. If the application server
is RVD make sure this value is greater than externalServiceTimeout defined in rvd.xml.
-->
<response-timeout>6000</response-timeout>
<!-- Control peer certificate verification for https connections. Two modes are supported:
'allowall' : Disables peer certificate verification. Use it when testing.
Expand Down
Loading

0 comments on commit df89547

Please sign in to comment.