This section provides examples of service definition macro files. Commented text explains the parameterized values in the examples. Each example is followed by examples of RADIUS information and the CLI command that you might use to activate a subscriber service session.
This example creates a tiered service. A tiered service typically provides set bandwidths for both inbound and outbound traffic for a subscriber. In this example, the bandwidth values are parameterized. Also, this example assumes that QoS profile triplePlayIP and QoS parameter maxSubscBW are configured.
!parameterizes input and output bandwidth
<# tiered(inputBW, outputBW) #>
<# uid := app.servicemanager.getUniqueId #>
<# name := "SM-tiered-" $ uid #>
<# oname := "SM-O-tiered-" $ uid #>
classifier-list matchAll ip any any
rate-limit-profile <# name #> one-rate
committed-rate <# inputBW; '\n' #>
policy-list <# name; '\n' #>
classifier-group matchAll precedence 10000
rate-limit-profile <# name; '\n' #>
traffic-class best-effort
policy-list <# oname; '\n' #>
classifier-group matchAll precedence 10000
traffic-class best-effort
profile <# name; '\n' #>
ip policy secondary-input <# name #> statistics enabled merge
ip policy output <# oname #> statistics enabled merge
qos-profile triplePlayIP
qos-parameter maxSubscBW <# outputBW; '\n' #>
<# env.setResult("activate-profile", name) #>
<# env.setResult("secondary-input-stat-clacl", "matchAll") #>
<# env.setResult("output-stat-clacl", "matchAll") #>
<# endtmpl #>
Sample RADIUS Attributes
|
RADIUS Attribute |
Tag |
Value |
|---|---|---|
|
username |
none |
client1@isp1.com |
|
activate-service |
1 |
tiered(1280000, 5120000) |
Sample CLI Command
- host1(config)#service-management subscriber-session
client1@isp1.com interface atm 4/0.1 service-session
“tiered(1280000, 5120000)”
The following example shows a sample service definition macro file that creates a video-on-demand service—the service provides bandwidth that meets the needs of video streams. The definition creates the bandwidth towards the subscriber and parameterizes the source of the video feed.
The sample CLI command shows an example of the service-management owner-session command that you can use to activate the service session.
!parameterizes download bandwidth and server address
<# videoMin(downloadBW, serverAddress) #>
<# uid := app.servicemanager.getUniqueId #>
<# name := "SM-video-" $ uid #>
classifier-list <# name #> ip any <# serverAddress #> 0.0.0.0
policy-list <# name; '\n' #>
classifier-group <# name #> precedence 5000
traffic-class video
profile <# name; '\n' #>
ip policy output <# name #> statistics enabled merge
qos-parameter maxVideoBW add <# downloadBW; '\n' #>
exit
<# env.setResult("activate-profile", name) #>
<# env.setResult("output-stat-clacl", name) #>
<# endtmpl #>
Sample Owner ID
|
Owner |
Owner ID |
Value |
|---|---|---|
|
AAA (RADIUS) |
Acct-Session-ID (RADIUS attribute 44) |
573498 |
Sample CLI Command
- host1(config)#service-management owner-session
aaa 573498 service-session “ videoMin(4500000,
192.168.23.58)”
This example provides a voice-over-IP service. The service is a session border controller (SBC) media gateway (MG)-based service that has upstream and downstream components.
The IP address and port for both the subscriber and the opposite end of the phone call were originally negotiated with the SBC. The VoIP service learns the IP addresses and ports for both ends of the call, and then specifies that any traffic to either end is put in the voice traffic class.
!parameterizes source address and port, destination address and port, and protocol type
<# mgFlow(upDA, upDPort, downDA, downDPort, protType) #>
<# uid := app.servicemanager.getUniqueId #>
<# name := "SM-mgFlow-" $ uid #>
<# oname := "SM-O-mgFlow-" $ uid #>
classifier-list <# name #> <# protType #> any <#upDA #> 0.0.0.0 eq <# upDPort; '\n' #>
policy-list <# name; '\n' #>
classifier-group <# name #> precedence 2000
traffic-class voice
forward
classifier-list <# oname #> <# protType #> any <#downDA #> 0.0.0.0 eq <# downDPort; '\n' #>
policy-list <# oname; '\n' #>
classifier-group <# oname #> precedence 2000
traffic-class voice
forward
profile <# name ; '\n' #>
ip policy input <# name #> statistics enabled merge
ip policy output <# oname #> statistics enabled merge
<# env.setResult("activate-profile", name) #>
<# endtmpl #>
Sample RADIUS Attributes
|
RADIUS Attribute |
Tag |
Value |
|---|---|---|
|
username |
none |
client1@isp1.com |
|
activate-service |
1 |
mgFlow(10.10.10.10, 1234, 192.168.45.54, 1234, udp) |
Sample CLI Command
- host1(config)#service-management subscriber-session
client1@isp1.com interface atm 4/0.1 service-session
“mgFlow(10.10.10.10, 1234, 192.168.45.54,
1234, udp)”
The guided entrance service enables you to create a controlled Internet browsing environment. Guided entrance-based services, which are sometimes called walled gardens or captive portals, are becoming increasingly important offerings for service providers. When a subscriber logs in and opens a Web browser, the Service Manager guided entrance service transparently directs the subscriber to a specific Web site—at that Web site, the subscriber is presented with a selection of possible services to use. For example, a subscriber might be shown a Web site that offers services such as:
Figure 30 shows the sequence of actions that take place during a guided entrance service.
Figure 30: Guided Entrance

Service Manager requires additional configuration considerations for the guided entrance service.
![]() |
Note: You must also configure a policy that redirects packets. See Creating an Exception Rule within a Policy Classifier Group in JUNOSe Policy Management Configuration Guide for information on creating redirect policies. |
This example shows a guided entrance service. Upon login, the subscriber is redirected to a specific uniform resource locator (URL) at which the subscriber can choose from a list of available services.
!parameterizes server address and port
<# http(serverIp, serverPort) #>
<# serviceTag := "http-" #>
<# uid := app.servicemanager.getUniqueId #>
<# genericName := "SM-X-" $ serviceTag $ uid #>
<# genericInputName := "SM-I-" $ serviceTag $ uid #>
<# genericOutputName := "SM-O-" $ serviceTag $ uid #>
<# claclName := genericName #>
<# profileName := genericName #>
<# inputPolicyName := genericInputName #>
<# inputRateLimitName := genericInputName #>
<# outputPolicyName := genericOutputName #>
<# outputRateLimitName := genericOutputName #>
<# exceptionClaclName := "exceptionClaclPort" $ serverPort #>
<# serverClaclName := "serverClaclIp" $ serverIp #>
<# redirectUrlName := "http://" $ serverIp $ ":" $ serverPort #>
configure terminal
classifier-list <# serverClaclName #> ip any host <# serverIp; '\n' #>
classifier-list <# exceptionClaclName #> tcp any any eq <# serverPort; '\n' #>
ip policy-list <# inputPolicyName; '\n' #>
classifier-group <# serverClaclName; '\n' #>
forward
classifier-group <# exceptionClaclName; '\n' #>
exception http-redirect
classifier-group *
filter
profile <# profileName #>
ip http redirectUrl <# redirectUrlName; '\n' #>
ip policy input <# inputPolicyName #> statistics enabled merge
<# env.setResult("activate-profile", "" $ profileName) #>
<# endtmpl #>
Sample RADIUS Attributes
|
RADIUS Attribute |
Tag |
Value |
|---|---|---|
|
username |
none |
client5@isp1.com |
|
activate-service |
1 |
http(192.168.25.2, 80) |
Sample CLI Command
- host1(config)#service-management subscriber-session
client5@isp1.com interface atm 5/0.1 service-session
“ http(192.168.25.2, 80)”
Typically, a guided entrance service directs a subscriber to a Web site, where the subscriber can select from a group of available services. When the subscriber selects a new service to use, Service Manager uses a RADIUS CoA message to activate the new service—you can also configure RADIUS to deactivate the original guided entrance service. To inform Service Manager to deactivate the original guided entry service, you must include the Deactivate-Service attribute in the RADIUS records of the services that can be selected from the Web site.
If you configure a guided entrance service, you must also ensure that the router’s RADIUS dynamic-request server is enabled and supports CoA messages. See Configuring RADIUS Dynamic-Request Server, for information about the RADIUS dynamic-request server and CoA messages.
Table 146 describes a partial RADIUS Access-Accept message for a guided entrance service and the CoA-Request message for the tiered service that the subscriber subsequently selects from the Web site. The CoA message for the tiered service includes the Deactivate-Service attribute that deactivates the guided entrance service.
Table 146: Deactivating a Guided Entrance Service
|
Guided Entrance Service Activated at Login | ||
|---|---|---|
|
RADIUS Attribute |
Tag |
Value |
|
username |
none |
client5@isp1.com |
|
activate-service |
1 |
http(192.168.25.2, 80) |
Tiered Service Selected at Web Site
|
RADIUS Attribute |
Tag |
Value |
|---|---|---|
|
username |
none |
client5@isp1.com |
|
activate-service |
2 |
tiered(1280000, 5120000) |
|
deactivate-service |
|
http(192.168.25.2, 80) |
|
service-timeout |
2 |
720 |
|
service-statistics |
2 |
2 |
JUNOSe software supports an embedded Web server, known as the HTTP local server, which is used to support the Service Manager application’s guided entrance service. With guided entrance, subscribers are directed to a specific Web site when they log in. At the Web site, the subscribers can then select the service they want to use.
You can configure one HTTP local server per virtual router. The HTTP local server is disabled by default. To configure the HTTP local server:
- host1(config)#virtual-router west400
- host1:west400(config)#
- host1:west40(config)#ip http
- host1:west40(config)#ip http access-class
chicagoList
- host1:west40(config)#ip http port 8080
- host1:west40(config)#ip http same-host-limit
20
- host1:west40(config)#ip http max-connection-time
1000
- host1:west40(config)#ip http server
- host1:west40(config)#profile guidEnt6
- host1:west40(config-profile)#ip http redirectUrl
http://ispsite.redirect.com
This section describes the commands used to configure the HTTP local server application on the E-series router.
ip http
- host1(config)#ip http
ip http access-class
- host1(config)#ip http access-class chicagoList
ip http max-connection-time
- host1(config)#ip http max-connection-time
1000
ip http port
- host1(config)#ip http port 8080
ip http redirectUrl
![]() |
Note: The HTTP local server must be configured and enabled in the virtual router for the interface on which you use the ip http redirectUrl command. Otherwise, the URL redirect operation will fail. |
- host1(config-if)#ip http redirectUrl http://ispsite.redirect.com
ip http same-host-limit
- host1(config)#ip http same-host-limit 20
ip http server
- host1(config)#ip http server