July 22, 2009

JSR 309 Media Server Control API Proposed Final Draft is available

The JSR 309 Media Server Control API Proposed Final Draft is downloadable at http://jcp.org/aboutJava/communityprocess/pfd/jsr309/index.html

September 10, 2008

Installing OCCAS 4.0 on Mac OS X

The OCCAS 4.0 installer has a problem with the Mac OS X JDK. It looks for ./jre/lib/rt.jar in the $JAVA_HOME directory. Unfortunately, the Mac doesn't have rt.jar in it's JRE installation. To trick the installer into working, we need to make one. Here are a couple of steps to help you out.

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_OPTIONS=-Dweblogic.management.allowPasswordEcho=true -Dos.name=unix -Xmx512m -XX:MaxPermSize=512m

mkdir $JAVA_HOME/jre
mkdir $JAVA_HOME/jre/lib
touch $JAVA_HOME/jre/lib/rt.jar

then to run the 'generic' installer:
java $JAVA_OPTIONS -jar owlcs1030_generic.jar

That should do it... When you're done, you can delete the bogus 'rt.jar' file if you like.

September 9, 2008

OCCAS 4.0 has been released!

Formerly known as WebLogic SIP Server (WLSS), Oracle Communications Converged Application Server (OCCAS) is now available for download: http://www.oracle.com/technology/software/products/ias/ocsd/occas-40/index.html

You can find documentation on it here: http://download.oracle.com/docs/cd/E13153_01/wlcp/wlss40/index.html

Hooray!

September 3, 2008

Five-Day Weather Forecast

I've been slowly going through old blogs and demos, updating them to support Oracle Communications Services Gatekeeper (OCSG) 4.0, previously known as WebLogic Network Gatekeeper (WLNG). Check out my updated "Five-Day Weather Forecast". The concept is simple. Simply text your zip code to the defined short code and the application will query Internet for the latest five-day weather forecast and return the results as five individual SMS messages. Not impressed? It's a concrete example showing how to apply SOA concepts to a classic telecommunications problem. Still not thrilled? Well, I use this example as a baseline for all future demos. They include:

* Location Based Services (LBS) to obtain the zip code automatically.

* Set up chat sessions between SIP phones and wireless phones.

* Upload photos directly from your cell phone to web sites like Flickr.

* Configure OCSG to work with your wireless Internet card for using these demos with real phones instead of simulated ones.

Still unimpressed? Ok, submit your ideas for an exciting demo. I challenge you to challenge me!

August 26, 2008

OCSG + XE

Oracle Communications Services Gatekeeper (OCSG), formerly known as WebLogic Network Gatekeeper (WLNG) is a carrier-grade telecommunications gateway supporting multiple network protocols and offering advanced policy management functionality. As you can imagine, it's a bit of a resource hog. When it comes to developing applications on my laptop, I like to keep the installation as light as possible. When installing, I choose the 'Basic Gatekeeper' domain and I like to use Oracle XE as the database. Oracle XE works great, however, on start-up you may encounter this baffling error:

ORA-12519, TNS:no appropriate service handler found

If that's the case (and I'm pretty sure it will be), you need to execute this SQLPlus command:

ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE;

That will increase the number of allowable JDBC connections. You will then need to restart XE.

In case you're not familiar with XE, here are some configuration tips:

Within SQLPLUS:

CREATE USER ocsg40 IDENTIFIED BY ocsg40;
GRANT RESOURCE TO ocsg40;
GRANT CREATE SESSION TO ocsg40;
GRANT CREATE TABLE TO ocsg40;

Of course, you can use any user name and password you wish.

When creating an OCSG/WebLogic Domain make sure to configure both datasource tabs:

wlng.datasource

Name: wlng.datasource
JNDI name: wlng.datasource
Database type: Oracle
Driver: Oracle's Driver (Thin XA) Versions: 9.0.1, 9.2.0, 10
Supports global transactions: Two phase commit
DBMS name: XE
DBMS host: localhost
DBMS port: 1521
User name: ocsg40
User password: ocsg40
Confirm user password: ocsg40

wlng.localTX.datasource

Name: wlng.localTX.datasource
JNDI name: wlng.localTX.datasource
Database type: Oracle
Driver: Oracle's Driver (Thin XA) Versions: 9.0.1, 9.2.0, 10
Supports global transactions: unchecked
DBMS name: XE
DBMS host: localhost
DBMS port: 1521
User name: ocsg40
User password: ocsg40
Confirm user password: ocsg40

August 25, 2008

The JSR-289 SIP Servlet v1.1 specification is now final!

In anticipation of a complete product implementation (aka OCCAS 4.0), I thought I'd take a minute to imagine what life would be like with these new features:

Application Composition. The servlet mapping rules have been replaced by an "application router", a single spot for defining application interactions. In turn, each application has a single, 'main', entry point for handling the SIP messages. This sounds promising, because the previous use of servlet mapping rules to define behavior was prone to conflicts and was sensitive to application deployment order.

B2BUA Helper. Nearly all applications I encounter are some variant of a back-to-back user agent. The B2buaHelper class attempts to simplify the process of creating B2BUA applications by handling functionality like session management and the automatic forwarding of unrecognized SIP headers. If I don't want to look like a fool, I'd better start using it.

Annotations. SIP applications now support Java 5 style annotations. I suppose it's a matter of programming preference as to whether they should be used, but since I've found them valuable in the development of Web Services, I have a hunch I'll be using them with SIP Servlet v1.1 as well.

SIP/Java EE Convergence. Finally, you should be able to reference the SIP Factory within an HTTP session by calling getServletContext().getAttribute(SIP_FACTORY). I know this sounds trivial, but it was a pet-peeve of mine to have to write funky servlet initialization logic just to implement a simple "click-to-dial" application.

Session Key Based Targeting Mechanism. This provides the ability to route initial requests to an existing SipApplicationSession instead of automatically creating a new one. Hmm... I've been recently exploring the need for a SCIM-like application for monitoring sessions within an individual call center (as opposed to on the carrier network). I bet this will help me in its implementation.

Ok, I'm sure I left a lot out. What has you excited about the JSR-289 SIP Servlet v1.1 API?