switch ( $_SERVER['PATH_INFO'] )
{
case "/list":
+ /*
+ Required parameters should be...
+ destination
+ */
+ $dest_username = "";
+ $dest_domain = "";
+ $e164_only = false;
+ if ( array_key_exists( 'destination', $_GET) )
+ {
+ $tmp = split_sipaddress($_GET['destination']);
+ if ( !$tmp )
+ {
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') );
+ break;
+ }
+ list ( $dest_username, $dest_domain ) = $tmp;
+
+ if ( array_key_exists( 'e164', $_GET ) )
+ {
+ if ( strtolower($_GET['e164']) == "true" ) $e164_only = true;
+ }
+ // TODO: Well. Code. This is a stub
+
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'notimplemented', 'detail' => 'Requested feature valid, but not implemented' ) );
+ }
+ else if ( array_key_exists( 'alias', $_GET) )
+ {
+ $tmp = split_sipaddress($_GET['alias']);
+ if ( !$tmp )
+ {
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') );
+ break;
+ }
+ list ( $alias_username, $alias_domain ) = $tmp;
+
+ // TODO: Well. Code. This is a stub
+
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'notimplemented', 'detail' => 'Requested feature valid, but not implemented' ) );
+ }
+ else
+ print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) );
break;
case "/add":
if ( array_key_exists( 'destination', $_GET)
- //&& array_key_exists( 'domain', $_GET )
- && array_key_exists( 'alias_username', $_GET )
- && array_key_exists( 'alias_domain', $_GET ) )
+ && ( ( array_key_exists( 'alias_username', $_GET) && array_key_exists( 'alias_domain', $_GET ) ) || array_key_exists('alias', $_GET) ) )
{
- $alias_username = $_GET['alias_username'];
- $alias_domain = $_GET['alias_domain'];
+ $alias_username = "";
+ $alias_domain = "";
+ if ( array_key_exists('alias_username', $_GET) )
+ {
+ $alias_username = $_GET['alias_username'];
+ $alias_domain = $_GET['alias_domain'];
+ }
+ else
+ {
+ $alias = split_sipaddress($_GET['alias']);
+ if ( !$alias )
+ {
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') );
+ break;
+ }
+ list ( $alias_username, $alias_domain ) = $alias;
+ }
if ( !verify_sipadress($_GET['destination']) )
{
break;
}
+ // TODO: Verify that alias does not collide with existing SIP-adress
+
list ( $dest_username, $dest_domain ) = split_sipaddress( $_GET['destination']);
if ( (!$dest_username)||(!$dest_domain))
}
break;
case "/remove":
- if ( array_key_exists( 'alias_username', $_GET )
- && array_key_exists( 'alias_domain', $_GET ) )
+ if ( ( array_key_exists( 'alias_username', $_GET) && array_key_exists( 'alias_domain', $_GET ) ) || array_key_exists('alias', $_GET) )
{
- $alias_username = $_GET['alias_username'];
- $alias_domain = $_GET['alias_domain'];
+ $alias_username = "";
+ $alias_domain = "";
+ if ( array_key_exists('alias_username', $_GET) )
+ {
+ $alias_username = $_GET['alias_username'];
+ $alias_domain = $_GET['alias_domain'];
+ }
+ else
+ {
+ $alias = split_sipaddress($_GET['alias']);
+ if ( !$alias )
+ {
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') );
+ break;
+ }
+ list ( $alias_username, $alias_domain ) = $alias;
+ }
if ( !verify_sipadress( $alias_username . "@" . $alias_domain) )
{